Learning to Code as a Student
Tags: codenewbie, beginners, programming
Published: 2020-12-19 12:52:35

I get a lot of questions on how you should learn to code. What resources, where to start and how to practise. As a result, I decided to write a post with some general tips and more specific web development tips (Mainly HMTL, CSS, Javascript, React and Python, Django)



Although this may sound cliché, learning to code is all about practice. Once you've found the right resources; it's about learning from your mistakes. The process is not to learn everything, only learn what you need as and when you need it.




As a student it isn't financially viable for me to spend a bunch of money on Udemy, so if you're in a similar situation this may just help you out.  First and foremost you should lay out your goals as a form of motivation. Setting out your goals helps you to keep learning; to allow you to strive for your goals. Why? you may ask. Well on a budget you will be looking for your own resources using your own initiative, which may feel like a waste of time, but trust me it's crucial. 



I am a practical learner, so the first thing I usually do is look for a tutorial series on Youtube, this not only allows you to write code but to make comments on the code from the tutorial. Don't just passively follow a tutorial, that's no use. Instead, I suggest you comment everything; write what the line of code is doing and why it's there. Once you have finished the tutorial you could add your own features to the app. However this isn't all, I can guarantee that you didn't take in everything in the tutorial hence I upload tutorial code to GitLab; when I'm building my own projects I can refer back to the tutorial code if it had similar functionality until eventually you won't need to refer back to old code and you just know what you're doing. 



I would also like to note you don't have to memorise everything in a language; A lot of the time it's a case of knowing the basics and being aware of what's possible. That way you can check the docs for specific features, as long as you know the basics. For example, when making a database model in Django I don't always remember the field names, but I am aware that there is an image field, so I'll look it up in the docs. Search Engines are your best friends. 



Once you know the language enough to build things with relative ease, read. Read books and articles in your language or Framework; learn from other people. The Software industry is huge, we all strive to achieve our goals and the only way we'll get there is by learning from each other. 



Now for specific tips (These are entirely based on what I did and may not necessarily work for you, it depends on what type of learner you are)



**__Python__** - Most features of Python can be learned from [SoloLearn](http://sololearn.com). They take you through everything from variables to OOP and functional programming. Once you have the basic awareness, it is again a case of practice. I use [CodeWars](https://www.codewars.com/) for this they have incrementally harder problems, and show you solutions from other people once you have completed the challenge; learn from them, pick apart the interesting ones this will help you in the long term. Learning a language is all a mind game be aware of a feature, recall 50% and google the rest. 
Book suggestion: **Python Tricks the Book by Dan Bader**



**__HTML and CSS__** - You can again learn this from SoloLearn (that's what I did), many people like to use [W3Schools](https://www.w3schools.com/). 
Book suggestion: HMTL and CSS by Jon Duckett



**__Javascript__** - JS is on Sololearn. However, it is such a huge topic which can only be learned by practice and building things. I suggest [Frontendmentor.io](https://www.frontendmentor.io/). Javascript is one of those gifts which keeps on giving. I suggest you have a look into [JavaScript.info](https://javascript.info/)
Book suggestions: **Jon Duckett's Javascript and JQuery** and for more advanced users: **Eloquent Javascript** (People have mixed opinions about this because of the complexity, but personally understanding something more complicated gives you a better understanding of the basics)



**__React__** - I will be talking about React, but this applies to any framework.

*Disclaimer: I am not by any means saying you should learn React there are many other cool JS frameworks like Svelte and Vue. Try them all and choose, don't go for what's hot right now. I may also be handy to look at jobs in your area, depending on your goals.* 

I learned React from [CodeEvolutions youtube](https://www.youtube.com/playlist?list=PLC3y8-rFHvwgg3vaYJgHGnModB54rxOk3) series suggested to me by a good friend of mine, but have a look at the documentation to extend your knowledge, and get used to navigating it. 



**__Django__** - Django is a full-stack python framework. This may sound like the common answer of "Read the Docs!!", but the Django documentation is one of the best I've seen. They have a tutorial for beginners which I suggest following, you will build a simple polls app. Make sure to get used to the layout. For Django, I once again turned to good old Youtube and watched Corey Shafer's series (I have a series of posts on this). From there is a case of building as much as you can with reference to your old code. Don't be afraid to steal code from **yourself**.



I'm currently learning Django Rest Framework, so check back here of an update on that; if you're interested.

How do you learn? Type it bellow and let's create a thread for the code community. 

Got questions about me and code check the [FAQ](https://github.com/MeRichard123/MeRichard123/blob/master/FAQ.md)