I know what you might be thinking: "It is almost February and the cliché New Year's resolution posts are still rolling on my timeline (now on dev.to)." And I do not blame you! But even that I do not normally take part of the New Year's resolution fever (normally I end up frustrated for not keeping them afterwards) this year I felt that I needed one, that I needed to formulate a good plan if I wanted to see tangible results by the end of the year.
The reason
Looking back at 2018, it was a year in which I established myself at my current (first) job as a Web Developer for a small IT consultancy company in Los Angeles, I got familiar with a lot of new web technologies and 'best practices', and I was part of the top Grow with Google applicants awarded with a full scholarship to the Mobile Web Specialist Nanodegree by Udacity.
Even that it does not sound like a bad year, the lack of tangible results made me feel defeated. I still did not have a decent portfolio, I did not finish most of the online courses that I started, I was not contributing to open source projects, I did not know much about TDD, I was not writing enough blog posts, etc...
Am I the only one who feels this way? How do the other amazing developers do it? How many years of my life do I need to spend my weekends coding to be a good developer?
I knew I had to do things differently, but how?
Then, I did some research...
First, I found that I was not the only one who felt that way. Erik Trautman explained on this post the multiple phases and difficulties of learning how to code. I realized that I am currently on the phase that he calls The Desert of Despair:
When you progress into the third phase, the scope of knowledge balloons wider. You now need to understand what tools to use, what languages to learn, underlying CS fundamentals, how to write modular code, object-orientation, good style, and how to ask for help (to name just a few). Every trip to Google or Hacker News takes you down another set of rabbit holes and overwhelms you with more things you don't know but feel like you should...
Even if you're able to get some apps running, it's hard not to feel lost in the greater scheme of becoming a true professional. It's difficult to measure your progress. How do you know what you need to learn or if you're even learning the right things?
Also, Quincy Larson described perfectly my situation on his tale of learning to code:
But as an individual, with so many options out there, it’s really hard to decide what to learn. I know because I was that dog circling around an intersection, chasing one car after another. A good programmer’s skill set can be described as T-shaped, with shallow knowledge in many areas, but deep knowledge in at least one. But after months of stress and hard work, I was shaped more like an underscore.
Second, I found that there was a way out. Luckily, Erik Trautman and Quincy Larson not only described my situation perfectly, but also suggested a way out. This is what they suggested:
Have a goal. I realized that I was trying to learn too many things at once. I needed to write down my goal and learn to say 'no' to those interesting things that can be unproductive and distracting.
Find a path (write a plan). I needed to write a plan that will lead me to achieve my goal. This way I can decide which curriculum to follow and stick to it.
Focus. I believe that this post will help me to keep my sanity and stick to this plan even when it gets difficult. I need to constantly trust my judgment and remember why I am writing this today. By sharing this to you I am publicly committing to follow this plan and write the results of it at the end of the year.
The goal
Going back to the T-Shaped type of programmer. I would like to have a good understanding on general Web Development concepts and technologies, but I would like to have a deeper knowledge on Ruby on Rails.
I have multiple reasons for choosing Ruby on Rails, but in order to keep it short, I just need to say that working with Ruby and RoR made me realize that I wanted to write code for a living (even after completing a CS degree). For more reasons of what makes Ruby on Rails so much fun to work with you can look at the Rails Doctrine by DHH.
In conclusion, my goal is to become a better Ruby on Rails developer and eventually land a Rails job (remote, side-project, or agency work).
The plan
I decided to divide the plan into quarters. That way it will help me to stay focus on what I need to learn and have a good visual of the projects that I want to finish.
1) I will start with some Web Development concepts, mostly the ones that I left inconclusive from last year. 2) and 3) I will start working on Ruby on Rails using Upcase by Thoughtbot and their apprenticeship program as a guidance. 4) I will get some familiarity with Vue.js and put it all together on a final project.
Q1 - Web Development
Objectives
- Improve Design skills
- Prototype monthly projects with Figma
- Improve GIT workflow
- CSS Grids and Flexbox
- SCSS
- Webpack Fundamentals
- Improve problem solving skills with Ruby
- Review Data Structures concepts.
- BEM - Block Element Modifier
- 7-1 Pattern
- Write at least one post per month.
Resources
- Design for Developers by Sarah Drasner
- Design for Developers by Thoughtbot
- Mastering Git by Thoughtbot
- CSS Grids and Flexbox for Responsive Web Design by Jen Kramer
- Advanced CSS and SASS by Jonas Schmedtmann
- Webpack 4 Fundamentals by Sean Larkin
- DS and Algorithms Masterclass by Colt Steele
Projects
- Finish Personal Website (Portfolio). Lighthouse scores 90+
- Build 2 websites for a friend, business, non-profit. Lighthouse scores 90+
Weekly Commitments
- Practice at least 4 Codewars Katas
- Study Resources related to project from 30 min to 1 hr a day.
- Work on Projects for 5 - 10 hr per week.
Q2 - Ruby on Rails (part 1)
Objectives
- Deeper understanding of Ruby
- Understanding Fundamentals of TDD
- RSpec
- Build features like: Uploads to S3, Auth0, email transactions.
- Deployment with Heroku.
- Deployment with Capistrano.
- Go to at least one Ruby LA meeting.
- Go to RailsConf
- Write at least one post per month.
Resources
- The Playbook: Video Edition by Thoughtbot
- Build Airbnb with Ruby on Rails by Code4Startup
- Test-Driven Rails by Thoughtbot
- Fundamentals of TDD by Thoughtbot
Projects
- Ruby Challenges by Thoughtbot
- Build Web Application using Ruby on Rails.
- Deploy Web Application
Weekly Commitments
- Practice at least 4 Codewars Katas
- Study Resources related to project from 30 min to 1 hr a day.
- Work on Project for 5 - 10 hr per week.
Q3 - Ruby on Rails (part 2)
Objectives
- Build features like: User Identification with SMS, real-time messaging, payments with Stripe, searching.
- Clean Code and Refactor
- Write at least one post per month.
Resources
- Build Airbnb with Rails tutorial pt-2
- Intermediate Ruby on Rails by Thoughtbot
- Refactoring by Thoughtbot
- Advanced ActiveRecord Querying
- On Writing Software well by DHH
Projects
- Rails Testing Exercises by Thoughtbot
- Add new features to previous project.
- Refactor Code.
- Improve Web Application Performance.
Weekly Commitments
- Practice at least 4 Codewars Katas
- Study Resources related to project from 30 min to 1 hr a day.
- Work on Project for 5 - 10 hr per week.
Q4 - Vue.js and Final Project.
Objectives
- Review and improve JavaScript skills.
- Have a good understanding of Vue.js
- Use Vue.js on Rails project.
- Contribute to Open Source project.
- Write at least one post per month.
Resources
- You Don't Know JS.
- JavaScript from Fundamentals to Functional by Bianca Gandolfo
- Introduction to Vue.js by Sarah Drasner
- Advanced Vue.js by Evan You
Projects
- 30 Days of Vue
- Create Application with Rails API Back-End and Vue.js Front-End.
Weekly Commitments
- Practice at least 4 Codewars Katas
- Study Resources related to project from 30 min to 1 hr a day.
- Work on Project for 5 - 10 hr per week.
Conclusion
As I mentioned before, by sharing this with you I am publicly committing to follow this plan and write the results of it at the end of the year.
This guide is not definitive and I want to learn from you, so please let me know if you have any suggestions or advice.
Thank you and wish me luck!
Top comments (55)
This is seriously such a great post. Thank you. I literally just wrote a post about how I have 25 years of coding and feel like I'm just starting. It's great that you posted out a plan. I'm going to be ready over this many more times and taking notes! Thank you.
Thank you very much for your words! I will check out your post for sure! Best of luck with your goals!
Thank you, I appreciate it!
Great article! I’ve enjoyed it even more because I can relate to it. I have also tried this approach, to organize my tasks, goals etc.. but it didn’t work as espected.
As a very curious person, whenever I try to study a topic, I run into different other concepts that sometimes are not essential to fulfilling my goal, but they are still related concepts that I personally can’t skip without making sure that I grasp the idea of how they work.
And because of that, time passes even faster. And then I find out that I have completed only a few “todos” out of how many I was supposed to complete.
My solution to this is to set a few larger, long-term goals(like watching a comprehensive tutorial which could represent a starting point for a project) and to have some small todos that you can solve when you know the time won’t allow you to work on a project.(coding katas, articles, small tutorials).
Good luck! I hope you’ll fulfill your goals!
Thank you so much for sharing your experience. I will definitely keep in mind what you said, and have some small todos related to my long-term goal, for those moments when time will not allow me to work on the project. Thanks again, and best of luck!
I must say your plans are really amazing. I always remember these things you said in your post. But for now, My niece asked me to help her with her essay work. But I am busy with my exam preparation. So I am thinking about suggesting her best essay writing help, I am searching for it on google. And I hope I will find the best one soon.
Hi Carlo, it was a bless to know that others feels the same way. Despite of I don't have Yet my first web developer job Yet, I consider myself as a web developer, and keep on the path to make it real. Greetings from Bogotá.
Hi Fabio! I am glad it was helpful, remember we are all on the same boat. Keep working hard, you got this! Btw... I really like Colombia and met some amazing developers there, best of luck.
Well, that s really great thing that you met amazing developers there, I am also visiting Colombia end of this month, Hope I also meet amazing developers there. By the way, Do you know where I can get the best online casino games software? I need it urgently. Hope I will find it soon.
Hey Carlo, glad I am not the only one feeling that way, I have two amazing project ideas that could really help me progress with my career, but finding the time and motivation to do it all is a problem. Between my full time job, exercising, writing blog posts, and completing online courses and side projects, it all seems impossible.
But let me attempt to follow a plan. Thank you for the awesome post.
Hello Pabi, thank you for your words. I am glad this might be helpful. Best of luck with your projects, keep us in the loop!
Big thanks, Carlo, for these wonderful piece. When i started leaning Javascript ES6 functionalities through the same Udacity Nanodegree Program, a strong yearning for a deeper understanding in JS grew in me (coming from a guy who saw nothing else other than PHP). Now i just want to keep exploring more grounds in javascript and this year i will be starting with Typescript
I'm glad this is helpful! Typescript sounds like a good way to go. Keep us in the loop to see the things you create with JS. Best of luck!
Thanks for Linking me to this post. You make some great points and so much of it was me relating directly to your situation. There's so much to learn, and you've inspired me to really expand my commitment to make a plan, write it out and share it. I really think that's going to help. Best of luck to you, Carlo!
I am glad you found it helpful! Can't wait to see your plan! Best of luck!
Thank you thank you thank you, I had exactly the same feeling a few months ago and your article was a lot inspired sincerely I also plan to do a program and learn better thank you again and good luck to us. Be Strong
Thank you for your words! Good luck on your plan, we got this!
Yeah, I agreed with you.
Thanks for sharing these amazing post with us. By the way, Do you guys know about any site where I can get a online casino $5 minimum deposit and while reading about it on loopx.io/online-casinos/minimum-de..., I mistakenly click on your post link, in which you share how you make a better plan to become better developer.
I am inspired of your article. I understand it is very difficult to keep own goal. but it makes you fruitsful results at end of this year.
To be a honest I gave up Ruby on Rails haha...and so keep studying Golang now. I hope you completing your plans.
Thank you! I heard a lot about Golang haha best of luck with your goals as well!
Hi, My sister is a very amazing writer, But she meets with an accident a few days and she gets a facture in her hand. So she asks me to complete her essay work. But I am busy with my exam preparation so I am looking for an essay writer service for it. Hope I will find it soon.
Hi, Earning money becomes really tough these days, and lots of people play casinos now a day. But they are confused about which site they choose there are lots of sites present on google in which you can play casino games. But lots of them are frauds. But don't worry visit online gambling security where you get to know everything about gambling security.
Thanks for sharing this nice and informative post. We should read this kind of posts and forward our knowledge to our new generation. theacademicpapers.co.uk/dissertati...
Some comments may only be visible to logged-in visitors. Sign in to view all comments.