As 2019 came to life and 2018 came to an end, it really dawned on me how unproductive the last year was for me. Sure, I had accomplished a lot in completing my bachelor's in IT. I felt really good about it, but the best coding I had done was only during my school curriculum, and I hadn't had a Java class since... February?
I had to figure out what went wrong. In the process of writing papers and building up my documentation skills, I had this vision of being done with assignments, done with my capstone... and just coding.
So why didn't it happen?
Hopefully, you can learn some of the valuable lessons that I did in the past 7 months.
NOTE: this post is directed mostly to those juniors like me, who don't have the developer or tech job.... YET.
This is for you who has to make time at home. Maybe you're single. Maybe you have a family like I do. But you're looking for a job, looking to just level up on your skills, or a little bit of both like me. I hope I can provide some insight through my lack of success. Here are my thoughts.
I started my programming journey in Ruby. I say that, because it's the first language that I ever encountered. It inspired me to pursue my education and to pursue this concept of software development. I didn't know where to start, so I googled "what programming language should I learn", and you can probably guess the feelings I had. There is SO much you can do in this field, but I chose Java since that was the language that my educational system had chosen. It was tough. Not anything that some dedication didn't reap results from, and I was building some basic applications and learning concepts like input validation and basic GUI building. I was having a lot of fun. Honestly though, I was hoping to push to higher levels like python after I was done with my degree, so that I could learn as much as possible in a relatively shorter amount of time. I'm still hoping that will be the case.
You have to realize just what you want to do with programming. Maybe nothing specific, but I think picking a language or field of study is a good start. Regardless of your choice, and how difficult the language is to grasp, you're probably going to learn many of the same concepts that you can take to another language, job, or project. After all, you're never going to get anything done if you have limited coding time every day jumping around languages and frameworks like I did those first couple of months I decided to start all of this. Should you spend more than one or 2 hours daily though, you may be able to cope better with multiple disciplines at once.
It's 2019, and learning to code has to be one of the fastest growing concepts on the internet. There are a ton of resources you can choose from. What's important to understand is we all learn and work differently. You have to understand your mind and your habits. Over the past 2 years, I've developed the habit of getting up early before work, and coding then. For some of you, being a night owl would be more beneficial, or even coding on your lunch break. I would say getting some practice time in every day is at the least, a good start. It may be an hour. It could be fifteen minutes. Just getting your mind into the programmer's way of thinking will help you become more familiar with the concepts you're learning at the time.
This was my downfall. Apart from my studies under my college teachers, I didn't really have much community. Sure, I would comment on someone's post, or follow a dev on twitter... but if you're not making regular connection and really discussing what you learn, your growth will be severely stunted. Gone is the stereotype of the developer being a smelly, lone nerd in their basement. Software programming is about collaboration with other minds to build amazing things. Reach out to a local coding community on GitHub, dev.to, or even IN REAL LIFE. If there's not one around you, try to start one! You may find, like myself, that even in the rural area you may live in are other programmers seeking the connection and collaboration. And I'm yelling at myself on this one, so here's to you and me to being better about connecting with others.
I had a lot of failed attempts that I wasn't willing to learn from last year, which I think largely caused me to burn out, get deep into the impostor syndrome, and not code for long periods of time simply because I felt like a failure. A large trend I found was trying the 100DaysOfCode on Twitter, and if you scroll down my feed, you see evidence of it. The rules are you go every single day coding for 100 days, with many details that I won't go into. Aside from the occasional free day, I had it in my head that if I missed a day, I absolutely HAD to start over, or else someone would find me out and accuse me of cheating the challenge. I would fail, be embarrassed to tweet yet another #day1 of progress, and got so into my head that I wouldn't code at all. This repeated at least 8 times in 2018 at some point. I had to come to the point where I am now, where I understand how much potential I wasted by giving up and feeling bad about being inconsistent, when the challenge's goal was to GET YOU TO CODE.
It's not the fault of the challenge. It's my fault for not learning from my mistakes... and as many times as you, the reader may hear that phrase, you have to apply what you learn from these mistakes. Know that for every failure you make, there's another opportunity to get back up and try it all again. Programming is hard. Many devs who are much more experienced than me could probably emphasize that better. That doesn't mean you should quit. Not for any reason! And if it means to take a break from the challenge, or to even modify the rules to help you succeed... do it! Understand what doesn't work, and do something different. As simple a concept as that seems, I had to learn that through my stubbornness.
I know what I want this year. To make progress as a developer. To read more code, and write more code. Join me and make your 2019 a year of progress, whatever your goals may be.