For most of my life I have always been around computers. Computers and software in general have
always fascinated me and I've always been intrested in computers. Since the time I realized that
any
person like myself could create software and computer programs, I have always wanted to create
something involving computers.
But with just a computer and no knowledge of any programming languages, I could not reach any of
my
dreams of creating computer software or programming anything.
This all changed during a sunny day in 3rd grade.
March 2018 to Spring 2019
It was during a sunny day in the March of 2018, my 3rd grade teacher introduced my class to
Scratch.
I instantly fell in love with the website, I could create anything using blocks, without needing
to
learn any real language.
Over the next year, I created many useless and crappy scratch projects. Most of them were 2
player games which I would play with my brother. Despite the fact that most of the games
were
very glitchy and had many bugs(I was using light mode) I still loved the freedom and
creativity
that scratch provided.
I continued using scratch until my intrest finally died out in the beginning of 2019 when I
realized that there were much better games and ways to use my time.
A blank scratch 2.0 project.
After I stopped using Block based programming, I did not go near computer science for about 2
years.
Not only was I more busy, but I also realized that other people have already crated things which
I
would never be able to create using block based programmming. I also got caught up with stuff on
the
internet and lost intrest in programming as a whole.
During this time I started playing more video games and started using the internet more as a
whole.
I started developing an intrest in games and game development.
Winter 2020 to Spring 2021
After a 2 year break from programming, I became intrested in game development again. This was
because I had been wanting to develop a game for a long time since it sounded very fun.
After some quick reasearch, I downloaded the unity game engine and hopped right into
building a
game, only to hit a wall.
You see, to create a functioning game in unity, a person needs to have at least a basic
knowledge of C#. I had next to no knowledge of C# or any programming principles. I tried to
follow a few tutorials about learning C#, but my 11 year old brain could not understand any
of
the concepts and I was left doing nothing. I dug around for any way with which I could
create a
game without knowing a programming language but I could not find anything.
A project open in the Unity game engine.
Finally, after a few months of experimenting with Unity, I deleted the program and forgot about
game
development. Although it may seem like I failed, I actually learned some very useful things and
concepts which would help me when I started learning Python.
Some of the things I learned about were Visual studio, Visual studio code, Blender, and some
basic
conputer science concepts like variables and arrays.
This website's code open in Visual Studio Code.
C# logo
Winter 2021 to Summer 2022
After I failed to learn C# and get into Game Development, I left programming for a couple months
again before deciding to learn a programming language.
After doing a bit of reasearch, I found out that python was one of the easiest and most used
programming languages, after which I decided to learn python.
For the next couple of weeks, I tried out many courses and followed many tutorials online to
learn
the language but to no avail.
I think one of the most likely reasons that I did not find any success learning from courses and
tutorials was because I did not have any understanding of much of the basic programming
principles
that I needed to understand.
It was not until I was suggested to learn from a book that I learned about the python crash
course. Using this book, I was able to learn many programming and python basics fairly
easily
and I was able to acquire a decently good understanding of the language in a few months.
Not only did this book provide me with a relatively good understanding of python, but it
also
taught me many programming and computer science principles that are widely used in other
languages as well.
Over the next few months, I created many python projects, mostly experimenting with data
formats
like JSON and CSV and. I also Failed attempted to create a few games with Pygame but
it
almost always went wrong because Python should under no circumstance
be
used to create games And because it was confusing and didn't make much
sense to me back then. Python was not made and should not be used exclusively to create or
render
visualization or games. Because of this, I started developing an intrest in Web development
and would
stop learning python completely in favor of web development.
Cover of "Python Crash Course"
Pygame Logo
Python™
January 2023 to Now
During a random day in July 2022, I made a file called "website.html" It looked like this:
A wellspring of Cringe and Regret...
Although putting this screenshot on here could be the single biggest mistake of my life, I was
pretty proud of myself back then.
Back then, having a website seemed like a very difficult thing to do. Even having a plain html
file
in my web browser seemed like a very big acomplishment.
After building this website, I realized that the bright light was attracting bugs and went to
youtube to watch a tutorial on css.
I learned a little more HTML and CSS during the summer of 2022 but stopped learning once school
started.
I redeveloped an intrest in HTML and CSS after seeing some cool web pages in replit. I
decided
to make a simple web page about myself and put some things about myself in it.
Although the web page was not very stylish or complex, I learned a lot about HTML and CSS
while
making this. Some things I learned included the css box model, flex boxes, element
positioning,
css text styles, and much more.
I created many more Html projects about random things for the next 5 months and further
improved
my Html and Css skills.
A Landing Page to an Html project which I made
After I gained a solid understanding of Html and Css, I moved on to learning Javascript. I had already learned some basic javascript from my Game dev days and after learning how to make things like loops and variables I realized that it was quite similar to Python. I started learning about DOM manipulation and found it quite easy. The thing that was more difficult for me to understand was AJAX. Jquery's syntax greatly simplified the code and made it much easier to understand.
Jquery™
After learning DOM manipulation using vanilla Javascript, I started learning Jquery since it
was
a lot simpler and easier to use than vanilla javascript.
I had a bit of trouble understanding chaining, AJAX, and binding events but I quickly
learned
them after some 12 hours of browsing the Jquery docs practice.
Learning Jquery was a very good thing since it has made DOM manipulation and AJAX much
easier. I
am also happy that I did not learn something like Angular or React since they would have
taken
much more time and I probably won't need them in the future.
Written in 14 October 2023
During the summer of 2023 I really thought that I could learn all of the React library and
become at
least an intermediate at it.
I hoped to learn React quickly and easily and then learn a few more things and then be good at
front
end. I've realize life rarely does that.
Right now im still trying to learn React, there are three reasons why its taking so much longer
than
it should have. The first reason is my inadequate knowledge of JS ES6+ features; I learned most
of
my Javascript knowledge from books which were released in like 2015
and did not have much information about ES6. Without this knowledge, I barely understood why
things
worked the way they did.
The second reason is that life and procrastination got in the way. I lost a lot of intrest in
programming after summer, and although my intrest is quickly returning, I forgot some stuff.
Procrastination and distractions were also a big problem(especially cs2 :heart:)
The final reason is that I didn't spend enough effort.
At the beginning of October, I basically restarted learning React from the bottom after finally
deciding that not knowing ES6 was not worth the trouble.
One thing that made me hesitate on commiting to react is Vue, from what I had researched, it
is has an easier learning curve and it also is a full framework, meaning you don't need to
install
more packages to get most of the features.
On top of this it is also way lighter than react and takes up less space. I decided to continue
learning React just becuase of the larger community and more widespread usage of it but I think
im
going to at least try Vue in the future since it seems like a good framework.
I also just learned how to actually use git in the beginning weeks of October. Before this I
knew slightly but my
understanding had many holes in it and I only used github desktop.
November and December 2023
After gaining consciousness of my life again and realizing that I did not, in fact, have
infinite time, I decided to get serious. Over the month of November during 2023, I learned
many things about React and also ES6 javascript.
Before this time, I still knew some parts of React like class components and JSX but not
many things that a modern react developer would know.
I mostly used a book called "The Road to React" and sometimes google to learn the things I
needed to learn. The book was a good book and explained many things.
Although I knew most of the fundamentals at this point, I had gotten little practice and
over the month of December I made a few projects to solidify my skills. Some of these
projects are avaliable to you in the Projects page.
Create React App landing page
bruhhhhhhhhhhhhhh
باید از زمان خود خردمندانه استفاده کنم