Β #CodingJourney #LearningToCode #CareerChange #TechCommunity
Hey everyone! π I’ve been diving into coding for the past 2 months and I’m hooked! π€ My goal is to transition into full stack development in a couple of years, aiming for a regular job market (not west coast). Here’s my plan so far:
– Complete freeCodeCamp’s HTML/CSS and JavaScript courses
– Finish The Odin Project
– Watch/complete Harvard CS50
– Learn React
– Explore other frameworks (suggestions welcome!)
– Build 20+ unique mini projects and 4-5 major personal projects
– Attend hackathons and meetups
I’m dedicating an hour every day to coding and saving up to work part-time next year to focus on finding a job. Any tips or advice on following this path? π Let’s learn and grow together! Share any insights you have or any potentially missing pieces in my plan. Can’t wait to hear your thoughts! π
1 hour a day is not enough, that’s only around 700 hours in 2 years, considering inefficiencies of self learning prob need at least double that to even consider being in a position where you can be hired as self learner.
Pretty solid but I would adjust accordingly (for reference this is how I learned and i’m coming up on my 6th year at my first dev job). You have the right idea but I think you have too much and a couple of things are out of order (if they were even meant to be in order) My suggest in order
* Pick FCC or TOP doesn’t really matter and finish you don’t need to do both you would just be wasting time on the second one
* Start attending hackathons/meetups and networking events. You will be able to help a little bit (probably more than you think you can) and ppl who are looking to mentor other ppl love seeing that and you may find a personal mentor (that’s how I met mine) and networking early is better than networking later
* Build 5 – 10 unique projects (They don’t have to be amazing or on the level of FAANG companies so don’t stress when they aren’t perfect)
* Learn framework (React is obviously the most popular in general but look at your market to make sure it’s the right choice).
* Rebuild those 5 – 10 projects in the framework you chose
* Think of 1-3 SUPER good ideas and build a feature complete project to show/share. NOW feature complete doesn’t mean it has to have every feature under the sun it means if there is a search icon it should have the search feature. If you don’t have a search feature DON’T have a search icon. That’s what I mean by “feature complete”
* Watch/Complete/Do assignments CS50 through out this whole process. If you are gonna be self taught CS50 will definitely show you a little more about comp sci than you would get else where but it’s not gonna be a deal breaking when you are interviewing but DEFINITELY suggest watching it along with their CS50x
Edit: Correcting the CS50 line to advise to not only watch but do the exercises that are a part of the course
I would honestly just do cs50 and then TOP. Then after you have finished top you will have a much better idea of what, if anything else you need to do.Β
For context I got a job just doing top but I think cs50 would give a good base.Β
If you’re going to focus on web/javascript, I’d make sure I look into learning typescript as most jobs these days prefer having typed languages.
You probably need to be thinking about getting 2000 hours of coding in. Bump up your hours.
Coding projects is the number one necessity to learning how to code. All the studying in the world will never hold a candle to actually doing the thing. That goes the same for playing an instrument, becoming a proficient artist, an athlete, etcetera. Programming is no different.
Each time you learn something, make a project with it and everything else you already know, until you start having project ideas that you don’t already know how to do but you are confident you can figure out how – and then realize them.
Hands down the fastest way to learn. Also look at other peoples’ code to learn all the little tricks and things that you won’t find in an article or video.
Great post, thanks for sharing. Iβm on the same boat as you. I will follow your roadmap!
your plan looks good. but you do not know how web dev is going to evolve. my suggestion here would be to do all things in 3 months instead of 1-2 years.
Focus on building actual functioning projects in whatever areas you’re interested in. In your case, that sounds like websites. And then put the code up on GitHub.
That’ll be your portfolio. It will be something you can link to on your resume, something you can talk about in interviews and (above all) something you can show potential employers to convince them that they should employ you over someone who’s done years of Computer Science in university.
Online courses can teach you a lot (I know I’ve learnt a lot from them) but in general employers only care about your proven, practical abilities.
Are you trying to get into webdev? I’m assuming that you are based on React. I’m going to repeat the same advice that others have made but I’ll try to add a little more to it. The best way to learn how to code BY FAR is to create projects. Don’t worry too much about frameworks. Just create projects and focus on three things.
1. Create a front end in something. You’ve chosen React and that’s great.
2. Create a backend in something. I recommend Java / Spring Boot since the Java ecosystem has a lot of jobs. You don’t need to use Java though. Python/Flask, Java/Spring Boot, JS/whatever. I personally recommend you avoid C, C++, Rust, <insert more difficult language> at this point.
3. Use a database.
Make your project complicated too. Add forms, add validation to the form, add saving, deleting, updating, add messaging between users, add whatever you want. Your first project is going to suck ass and your coding is going to be horrible, but you’re going to learn more things way faster than going through a tutorial. Feel free to Google stuff along the way and read stuff about SPECIFIC things to get you to the next step in your project, but don’t sit in front of a fucking full “Learn React” tutorial at this stage. Learn to get to the next step.
And then throw it away and make it again, but make it way better. Then deploy it onto the web. Make things faster, try to make your code easier to read, add tests, add it to version control, keep reading stuff on how to make specific_thing_here better, create more standard package structures, add more complicated features to it. Avoid full tutorials. Your creation is STILL going to suck but you’re at a place unrecognizable from where you started. You’ve actually made something. You’re at level 2.
And then throw it away and make it again. And again and again. Try to make your next iteration as perfect as you can.
And here’s the mindset that you want to get to: I’m at a place where things work but I don’t quite know how it’s working; there’s so much black magic happening. This is level 3 and this is where you dig deeper and learn more about what you’re actually doing. Feel free AT THIS POINT to go through tutorials. The thing about these tutorials is that they’re so in-depth. There’s a lot of information but you have no place to slot this information because you’ve never done it before. Read documentation, read/watch tutorials, read advice on the internet, read books, whatever. These things, in my opinion, are absolutely wasted on new programmers. You just need to hack away and create.
Now remake your stuff and go for extreme depth on everything. Making a new project should be second nature by now. Don’t take your frameworks for granted anymore. Really try to learn what your stuff is doing. And if you want to learn C then *this* is the point you want to do it.
>level 1(pretty long): hack away and just make something cool and complicated. you hack away until you hit a roadblock, but then you only read enough to get to the next step and then you hack away some more.
>level 2 (REALLY LONG): throw everything away and make it better. repeat over and over
>level 3 (a lifetime): deepen your understanding
If you’re thinking “But I need to learn things systematically because I have no idea about anything!” then I strongly urge you to throw that way of thinking out. The system I outlined isn’t just for beginners. It’s the system that experienced devs do to learn new shit.
You will have to learn how stuff works along the way. You’ll hit roadblocks that you’ll have to google about and you won’t be able to progress until you’ve learned about stuff. Throw yourself in the deep end and struggle. Struggle to the point where there are days where you spend ALL day trying to figure out how **ONE** thing works. Struggle to the point where you threaten to kill your compiler’s mother and children. It’ll be so painful but you’ll actually learn.
Start with CS50. It will give you a firm understanding of computer science basics. Youβll appreciate the higher level features of JS/TS once youβve built them for yourself in C. (The course itself bridges the gap between the two.)
Do CS50 first. Maybe pair it with a book like Structure and Interpretation of Computer Programs to cement the ability to think abstractΒ
I’d recommend to be more specialized in either the frontend or backend. Fullstsck is really jack of all trades master of none. Trying to do it early in your career will ruin any development in either backend or frontend arena.
If you want to focus on specifically frontend, spend your time on JavaScript. Don’t worry about frameworks. Maybe look towards them for inspiration, but get as much frameworkless JavaScript experience as possible. Doing so will help you build skills that are transferable and timeless.
If you want to focus on backend: SQL SQL SQL. Learn it first. Learn it well. After that, learn a web framework. .NET, Django, Spring are all fine.
And finally one last bit of advice: when working on problems, don’t worry about following what you see other people do. Write the simplest code that works and move on otherwise you’ll get overwhelmed with all the dogmas in software that at the end of the day, don’t matter.Β
With that level of commitment the only person that can stop you IS you. Let’s go! Get some!
Couple of additions I would add …
You don’t necessarily need 20+ projects … revisiting and building on old code is good practice. Use your old HTML / CSS personal portfolio page and, when the time comes, refactor with libraries, then frameworks, and clean up the code.
Add a bullet point to contribute to a open source projects. Learning to work with other devs and the git flow are great for job searches
Iβd skip the HTML/CSS stuff and go right to cs50 or similar unless building web pages is a big part of what you want to do. When youβre done with cs50, figure out where to go next.
Learn about version control systems, Git is the best start and recommendation I can give you. It’s what GitHub and GitLab are named after, and there’s a reason it’s everywhere these days.
Learn about testing and testing methodologies, they’re far more important than any framework. Learn about TDD, BDD, and Contract testing (cucumber, robot, pact, etc)
Learn about CICD, a GitHub actions and/or Gitlab/TravisCI/CircleCI/Bitbucket (don’t learn them all, expose yourself to one or two is enough)
Frameworks are flavor of the month, don’t worry about them too much. Learn one and the rest will come as you explore things.
Learn about building secure unprivileged containers images to run your workloads.
Learn about using a good linter configuration (pre-commit is my recommendation, you can easily turn it off).
Learn how to deal with a database (postgres is my recommendation, but SQLite3, or redis would be good alternatives)
Learn about making things Idempotent.
Learn about 12 factor apps.