This content originally appeared on DEV Community 👩💻👨💻 and was authored by Gustavo Pereira
If you are short on time and just want to get the resources, I posted all links at the end of the post
It took me 7 exact months. I only missed 3 days(some days I forgot to commit).
From learning how to declare a variable to landing my first software developer job, this are the resources I consumed.
Roadmap
Note: I started out following the front-end dev path but ended up landing a full-stack role. I'd still recomment starting with front-end even if you know you want to pursuit a back-end dev career.
I guided myself based mainly on the below roadmap which I was referred to by a master software develper and dear friend(😘 Jorge).
This video gives a less overwhelming path.
Web Foundation - HTML/CSS/JS***
I need to mention that I was not completely raw, I worked for 2 years with IT Support and went to college for IT(which included some coding) before quitting a year and a half later.
The IT experience ended in 2011 and the timeline of this post starts 10 years later. I basically didn't remember anything code related. Nothing.
After a refresher on how the internet/browser works, what is http/DNS etc, I started on FreeCodeCamp.
FreeCodeCamp (https://www.freecodecamp.org/)
- Responsive Webdesign Certification(I didn't finish this one)
- JavaScript Algorithm and Data Structure Certification
I did not go through the recommended path of doing the responsive webdesign first and than moving to the javascript certification.
I followed my curiosity(which always gives me motivation) and jump started on the JavaScript certification. Finished the foundation sub section and now with my curiosity satisfied, went back and started the webdesign certification.
And finally after getting bored with html and css I returned and finished the JavaScript certification.
At this point I needed to build something, I had had plenty of input and was eager to see what could come out, so I started looking for something to build.
Stumbled upon John Smilga's 15 JavaScript Projects course on freeCodeCamp's youtube channel:
It was an instant hit. I did the whole thing and had a great time.
Getting more out of my learning
Since this is a javascript course John won't go over the html and css for the projects.
What I did was, I would take a look at the final version on his website and recreated it myself before starting the project. That way I got pretty confident at HTML and CSS while working on my javascript.
Once I finished his free youtube course I wanted more, so I bought John's JavaScript full Course on udemy.
Here is john's website with all his courses.
Computer Science Into
Also through freeCodeCamp's website I found Harvard's CS50 intro to computer science. It is bloody awesome and absolutely essential for a self-taught as myself.
worth mentioning
- I watched it on youtube
- I didn't watch lecture 6 python and lecture 9 flask
- I didn't do the exercices, just tried to understand what was going on.
- I didn't try to learn C sintax, I was interested on the CS concepts.
- Whenever I got lost, I'd go back and watch again or pause and try to understand what was going on.
- I was my passive learning, whenever I was not hands on coding I was watching CS50
JavaScript Framework - React.js
This was a no brainer to me after consuming John's JS course.
I bought his React.js course, which goes over almost the same projects build on the javascript course but this time in React.js.
At first this was a downer, I didn't want to do the same projects again, but after pondering over it, it was the best thing I could do to cement my knowledge.
Again, twice the exposure to the same concepts, twice the changes of consolidating the knowledge(repetition).
Back-End - Node.js + SQL
There is no way around it, you have to know the basics of the backend even if you plan on being a front-end dev.
The thing is, to create a more interesting/custom project will require a database and a simple server.
At this point I was curious to know how the back-end worked, how to connect the database to the server, all that fun stuff. I had no idea, reason why it was so interesting.
Also, most people on the internet were saying that for a project to stand out or at least be considered a worthy of being added to your portifolio, it had to perform the CRUD(CReate, Update, Delete) operations at least. Hence needing a server and database.
In practive, it didn't take more than a few days to learn the basics of node and SQL, enough to rig up a simple back-end with db.
Learned the basics of SQL(just what I needed for my CRUD projects):
- W3Schools - https://www.w3schools.com/sql/default.asp
Basics of Node.js
- John's Node.js course (did just 5% of the course)
Algorithms and Data Structures
Whether you like them or not, there is no code without algorithms and data structures. Everything you do code wise gravitates around them.
I was very hard at first, then became just hard.
Once you have learned a few techniques and sharpen your problem solving skills, it gets less hard.
I'd focus mostly on doing exercices tackling arrays, hashs, strings and numbers, since they will probably be your bread and butter at work.
In my case, in addition to the above, and again following my curiosity, I included: linked lists, trees/AVL/Binary, graphs, DFS/BFS algorithms. (at this moment writing this lines, I am planning on going back to explore from where I left off)
Here are some of the resources I used:
- Data Structures and Algorithms in JavaScript - Full Course for Beginners
- Algorithms and Data Structures Tutorial - Full Course for Beginners
- mycodeschool
- NeetCode
- Nick White
Note: I almost burned out pushing myself too hard on this. Don't do the same. Take it slowly and steadly, or else you risk throwing you computer out the window and never using one again.
Did a bunch of projects and code challenges along the way.
- 60+ CodeWars challenges
- 16 LeetCode challanges
- Build 20+ small projects along the way.
Here is a short list of some of the small projects I build:
The main projects that composed my portifolio:
What I consider key factors
With a few exeptions I did not follow anything linearly, from top to bottom, beginning to end.
I had a north and let my curiosity take the lead in most cases.
That gives me:
- persistance to understand a complex topic.
- Experimenting (reinforces learning)
- Extra motivation
When building projects I either:
- Had the idea and looked for similar projects on the internet to see what they had done and googled when stuck.
- Fused two tutorials into a unique project.
- Used a tutorial to do the front-end and did my own back-end (or the reverse)
I also:
- If following a tutorial, never used the same variable names(forced me to understand what is going on and not just blindly follow)
- Change the theme (if following a tutorial on how to build a movie app, I'd do a book app instead)
With all that said, I ended up landing a job which tech stack is:
- C#, .NET MVC, SQL, Vue.js, JQuery
I had 10 days before the second interview to show that I knew enough to land the position...
That is a story for another post.
Catch you later,
Gus
All Links
Roadmaps
Web Foundation - HTML/CSS/JS*
- FreeCodeCamp (https://www.freecodecamp.org/)
- Responsive Webdesign Certification
- JavaScript Algorithm and Data Structure Certification
- 15 JavaScript Projects Course
- johnsmilga.com (JavaScript)
JavaScript Framework - Reacj.js
- johnsmilga.com (React.js)
Computer Science Into
Backend + SQL
- W3Schools - https://www.w3schools.com/sql/default.asp
- johnsmilga.com (Node)
Algorithms and Data Structures
- Data Structures and Algorithms in JavaScript - Full Course for Beginners
- Algorithms and Data Structures Tutorial - Full Course for Beginners
- mycodeschool
- NeetCode
- Nick White
This content originally appeared on DEV Community 👩💻👨💻 and was authored by Gustavo Pereira
Gustavo Pereira | Sciencx (2022-12-09T23:33:53+00:00) All resources I used to teach myself how to code. (From day 1 til I got a job). Retrieved from https://www.scien.cx/2022/12/09/all-resources-i-used-to-teach-myself-how-to-code-from-day-1-til-i-got-a-job/
Please log in to upload a file.
There are no updates yet.
Click the Upload button above to add an update.