loading...
Cover image for My plan to become a better developer in 2019.

My plan to become a better developer in 2019.

carloteran19 profile image Carlo Teran ・7 min read

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:

  1. 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.

  2. 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.

  3. 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

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

Projects

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

Projects

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

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!

Posted on by:

Discussion

markdown guide
 

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!

 
 

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!

 

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!

 

Inspired by your post, I wrote myself a blog post at
ankeshb.home.blog/2019/01/24/elali....
I was rather hesitant to post it on dev.to itself given my noobish levels as I've just started self learning things myself from a month or two.

Thanks for sharing your plan, it really helped me to pick some additional resources and know-how of executing a quarterly plan.

 

Thank you so much Ankesh! I just read your post, it seems like a great plan. I can't wait to see all the things we can achieve in one year. Keep it up!

 

I've subscribed to you, I'll have my all eyes and ears on your next posts. Kinda motivates me to work hard and build things being a beginner myself. Finding path was a big valley in itself but seeing someone who has passed the valley and gonna climb a mountain is always nice.
Best wishes this year!

 

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.

 

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!

 

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!

 

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!

 

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!

 

This is a great article with a ton of great links to different resources. I especially like the part about being overwhelmed on what to learn and how to combat that.

 
 

Perfect plan man.. Executive it soon. We guys are with you. If you face any problem in anything related to scripting, you can directly come to me for help.
Thanks for sharing this.


Dissertation help

 

Hi Carlo Teran,
This is really such a great post. Thank you. I am deeply attracted by your post. It is really a nice and informative one. Surely I will recommend it to my friends. I am also a tech lover and sometimes write tech-related articles on my website nextprotips.com and top10bests.com .you are invited to see my blog article. Thank you

 

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...

 

This pretty much sums up why I decided to start writing at DEV!
Wish you the best with this year's plan. You inspired me to solidify my plans as well.

 
 

"I realized that I was trying to learn too many things at once.".
Your new plan looks like you really cut the amount of things you are trying to learn at once :D

 

". I realized that I was trying to learn too many things at once.".
Your new plan looks like you really cut the amount of things you are trying to learn at once :D

 

I love your objectives organization, you cover a lot of things, might use this article as a template haha. Good luck!

 

For sure, I hope it helps haha Thank you!

 

This seems like a really well laid out, actionable, and realistic plan. I think I might take the time to write one for myself. Writing out your goals helps motivate yourself towards achieving them.

 

Thank you so much! Best of luck on your goals!

 

Just remember that when you're stuck and you feel frustrated and you're starting to 2nd guess your decision that's when you're actually learning so don't get discouraged.

 

You are right! Thank you Sergio!

 
 

I am deeply attracted by your post. It is really a nice and informative one. I will recommend it to my friends. Also, you can read this: techpout.com/best-kissanime-altern...

 

Nice post. Thanks for your ideas. Students can get information from this post.

 

Nice post. Thanks for your ideas. Students can get information from this post. Here you can check Semrush Free Trial which will help you to spy on your competitors

 

We should read this kind of posts and forward our knowledge to our new generation.expertwriterz.co.uk/services/disse...