Learning to code (for beginners)

Hello everyone,
My name is Daniel Adetayo from Nigeria an aspiring fullstack web developer. Nigeria? Yeah I know. I am not a Nigerian prince :joy:, I promise.
I started learning web design in 2014, joined freecodecamp in 2016. Joining FCC gave me direction after learning HTML, CSS and wordpress. FCC made me feel like a programmer for the first time, but I had no idea that this was the hardest thing I would ever attempt.
Coding is hard. Iā€™m not saying this to scare people. I have seen different arguments on twitter about using phrases like that, but that is simply the reality. This is probably the most frustrating activity youā€™ll ever engage in. You are trying to instruct a machine using syntax made to mirror human language. But coding is just like any other activity. The more you practice the better you get at it. Stop thinking you are too dumb. After coding for more than two years, I can boldly say I still feel stupid. I still donā€™t feel like I know how to code. Misspellings still break down my code for days. I still google how use switch statements. Thatā€™s the reality.
When it comes to coding there is something you must understand, you must stop rushing things. Learn to take your time. I have discovered that the more I try to quickly debug my code, the more time I spend when compared to taking a time out and coming back to it. Learn to take breaks especially when something is not working like we expect or when we are following a tutorial. You always gain a fresh perspective on things after taking breaks. And it almost always reduces our frustrations.
Also learn to implement. Coding is all about implementation, typing and practicing. One of my biggest problems while learning to code is my refusal to practice whatever tutorial I watch on YouTube. If you want to learn faster, type out everything you learn. This advice might not work for everyone, since it is from my own point of view. But anyways, just practice.
This is my first long post on this forum and I hope you found it helpful. Iā€™m sorry for any errors this might contain. Thank you for your time.

35 Likes

Thank you very much :blush:

2 Likes

I really like this. I am extremely close (Tic Tac Toe project) to completing my ā€˜Front End Certificationā€™ and I keep feeling stupid sometimes. I have noticed that if I am working on code, it helps to take a step back and come back to it. I also walk myself through it again and again. I also like to put a lot of items in the console to know where my code is and what it is doing. I try to also put very detailed comments in my code as well, which helps me if I come back to it at another time. It can be difficult trying to figure out what the heck your code is doing when you leave it for a few days.

But hey everyone is different. I hoped sharing my things helps people.

Happy Coding

6 Likes

Amen. Iā€™ve lost track of how many problems Iā€™ve solved that initially seemed almost insurmountable. You just have to sit and stew over it, try different things out, review what youā€™ve previously learned, and eventually youā€™ll have your eureka moment.

4 Likes

Software development => continually learning new technologies => continually failing => continually feeling stupid

Itā€™s just how it is, for everyone.

The bursts of inspiration and chance for beauty and creativity in code just makes up for failing all the time.

3 Likes

Very good advice. As far as saying coding is hard, I think it is an encouraging thing to say. If you tell someone learning something new that it is easy, they wonā€™t get much satisfaction out of learning it even if it is easy for them, and if they find it difficult they will just feel stupid. On the other hand, if you tell them it is hard, they will either find it easy and feel smart, or find it hard and not feel particularly stupid.

About taking a break: Itā€™s true that you can come back rested and with a fresh perspective, but there is more going on than that. Once I wanted to learn to play League of Legends. So I started playing and practicing and studying. I was absolutely the worst League player in the history of the game. People constantly thought I was a bot because my play was so idiotic. So I got discouraged and I quit. I stopped watching streams, playing the game, reading about it. No contact with it at all for 3-4 months. Then a friend talked me into playing a game, and I quickly discovered I had improved quite a bit. The way our brains work is so fascinating. It takes a longer time than we realize for the brain to sort out and coordinate new information, and many times I have quit things because I thought I was not progressing.

Iā€™m not suggesting taking off for months at a time, but it is more evidence that your brain is working in the background all the time, analyzing whatever we put into it. It just needs us to have patience and give it time.

ps I still suck at League, but there are now a few people worse than me, lol.

4 Likes

Donā€™t think Do
Was the motto of a supervisor of a coding friend.
Mine is I want to see dustā€¦ Ie results or something happening immediately.
Flowcharting saved my bacon a number of times.
This career is funā€¦

3 Likes

:joy:
The human brain is truly fascinating.

1 Like

Canā€™t agree more :wink:

Iā€™ve forgotten more than Iā€™ve even learned!

2 Likes

thanks. Iā€™ve been coding with html for at least a year now and I still look at everyone else solving solutions whereas Iā€™m still trying to understand the question.

this really opened my eyes. I appreciate the post.

2 Likes

Just try to take your time as much as possible. Donā€™t rush it. Stop looking at the progress of others. Focus on yourself. Try to ask questions on this forum, google, stackoverflow when you hit a bug or when you donā€™t understand a concept. Through this process, your brain expands without you realizing it.
Coding will stretch you and stress you, but youā€™ll get an unexplainable high when you solve a problem. A feeling greater than esctasy imo. At the end, youā€™ll be happy than coding chose you. Keep coding, keep hacking. Take breaks but donā€™t stop.
Just glad you found my post helpful.

4 Likes

having a good example of simple useful program is a good start

This app is one that I rewrote probably over 500 times while doing ETL for
cable and telephone billing systems. It is dirt simple and can easily be changed to
make it a simple accounts app.

As soon as I got the data being transferred Iā€™d do one of these apps.
The screen looked exactly like the one from the original system.
The new users loved it and I got a peek at the data right away.
Even converted over history (workorders and transactions) That was handy for
many reasons. Few other did this. But why not.

1 Like

Nicely put Daniel. I concur. I started doing this 6 months ago and it is only getting harder and harder. Javascript is kicking my A$$. But I remind myself to slow down and to go back if I did not understand something I just learned and practice, practice, practice, over and over and over again. Last night I woke up in the middle of the night and my first thought upon waking was ā€œthe DOMā€, javascript and the DOM then getElementByIdā€¦in the middle of the night. Very weird but I have learned that practice is the key to coding.

Something Iā€™ve found helpful is to keep notes of what I am learning, and how I solve problems that come up.

For example, I found a Python library that was exactly what I needed as the basis of a project Iā€™m doing for a neighbor. I downloaded it, but there was absolutely no documentation on how to install it! I tried a couple of times ā€“ no luck. I switched to a different library I found that I thought would work, but it didnā€™t: it wasnā€™t compatible with the version of Python Iā€™m using (Python 3.6). Went back to the original library again, and quite by accident, I ran across the installation method, at Stack Overflow.

During this entire process I took notes, describing what I tried, what went wrong, other things I tried, and finally, what worked. I use Evernote for note taking, which enables me to insert links to downloads and documentation, as well as code blocks. I find this helps me remember how I solved that particular problem, I know it will also be helpful if I ever get stuck and have to ask for help, because Iā€™ll be able to show what Iā€™ve tried so far.

The downside of note taking is that it is time consuming and slows me down when Iā€™m eager to just get something done quickly, but I still absolutely believe the benefits of note taking are worth it.

2 Likes

gentlemen its indeed true,some times i feel like considering another field

Great advice. I find note taking useful as well. I use Google keep for mine. Thereā€™s no way I can keep all of this in my head anymore. Maybe when I was in my 20s.

Iā€™ve also found that keeping a journal/log with times and dates of my coding and researching to be helpful to track the time Iā€™ve spent. Nothing formal like a spreadsheet but more like a journal of someone trapped on an island.

1 Like

That is a great story for anyone who is planning on getting into the same shoe as you did. Which means that it goes for me first of all. I have been really wanting to get into computer science but was not planning on getting into something too extensive. Maybe something different and interesting but challenging at the same time. I have heard that WebDev or anything related to that is hard and can be intimidating. At times it can be trying and frustrating that would tempt you to want to give up and quit.

I tried FCC still working on it. I am liking it and still learning. FCC has opened my eyes to see a clear path as to how WebDev in general works. Right now, I am trying out almost everything to learn as much as I can to get a lesson and know what I am doing before getting into the real deal and hopefully landing a job.

Thanks again.

This is a great post, thanks! I am currently studying Computer Science in college and there was nothing that had ever given me so many doubts. My memory is horrible and I have to look up pretty much every code syntax. The other problem is the fact that a lot of people say that a computer science degree is a waste of time and resources and that scares me too.

But I feel a lot better now that you say you also get frustrated after two entire years of coding. Iā€™ve never been much of a fighter but Iā€™m gonna fight for this- I want it more than anything.

Just a quick Q, Iā€™m studying java and was wondering if FCC provides that? Also, IS a CS degree a waste of time and resources? ><

Thanks again!

Just a quick Q, Iā€™m studying java and was wondering if FCC provides that ?

No, as of now, the FCC curriculum only teaches with the JavaScript language.

Also, IS a CS degree a waste of time and resources?

Absolutely not, finish your CS degree.

The fact that youā€™re currently studying computer science gives you an edge over others. Make the best use of that opportunity. CS is still important.
Also I donā€™t think FCC has any Java curriculum for now. Keep hacking.