It’s hard to believe it’s already been 4 months since I officially began the Software Developer track with Bloc. While I’ve been actively learning to code for over a year now, starting at Bloc was new phase in the journey. For several months prior, I had been learning to code on my own through various online resources. I took an introductory programming course back in college but had forgotten most of it. After researching various options, I decided to take this course through EdX. There are so many options out there for anyone wanting to start learning to code, and it was pretty overwhelming. I ultimately decided on the MITx course because I had read that Python was a good language for a beginner. Looking back, I still think this was a good decision and found the course to be challenging and fun. It also built up my confidence to dive further into the world of development. At the same time, I realize now that the first language you learn isn’t as important as I initially thought. There are many articles out there that cover this topic (such as this one), so I won’t go into detail in this post. My best advice for anyone looking to start is to not stress too much about the particular language, and just jump in. Every day spent trying to settle on a language is one less day spent actually coding.

One of the reasons I feel this way is because there is a lot more to programming than the specific syntax of a language, and most of the major concepts are utilized regardless of the language. For example, I started with Python, and since then have learned Objective-C, HTML, CSS, JavaScript, Ruby. I’ve even dabbled in Java and C++. I’m certainly not proficient at all of these, but each time I tried a new language, it became easier and easier to learn. I’ve also started to notice differences between languages, and find ones I like better than others. I’ve also gained a better perspective about how each language is used and in what types of industries and roles. While different languages can accomplish more or less the same thing, certain ones are designed with a purpose in mind, which makes particular tasks easier to do. For example, Ruby (and particularly Ruby on Rails), is tailed to web applications that use databases. Ruby on Rails applications can use tools like ActiveRecord to access the database without using any SQL. JavaScript is mainly used for frontend web development, although it could be used for the backend. These are both examples of newer languages that have developed to fill needs within the web development space.

While I’ve been enjoying this exploratory phase, I also recognize that this can’t go on forever. There are too many languages out there with new frameworks being developed almost daily that it would be impossible to keep up with everything. The problem I kept running into was that everything sounded interesting, so I would try something for a bit then move on to a new focus. This would satisfy my curiosity initially but leave me without enough depth in any one area to really know if I wanted to pursue it further to become proficient. One of the reasons I decided to start the Bloc program was to help with this. The structured curriculum has helped me focus on one thing at a time and actually build some projects myself to experience what it’s like to work with different aspects of a software application.

As I’ve progressed through the program (I’m almost done with the web development portion), I have gotten a clearer sense of what I like, and just as important, what I don’t. I’m definitely more of a backend girl, and while I can appreciate great frontend design, it’s just not my thing. Now that I’ve gotten a better view of web development in general, I’m also recognizing that my interests lie outside of the mainstream web development world. I definitely don’t regret learning these skills, mainly because the general trend for most industries is moving towards cloud/web-based solutions and it’s certainly a practical skill to have. At the same time, I find myself gravitating towards industries and problems that would combine my new programming skills with my engineering background. I really do still love math and science (I’m a nerd…I know), and I’ve been learning more about opportunities that can combine these areas. Just like with programming languages, I’ve discovered a wide range of options that all sound interesting. I’ll save the details of these possible paths for future posts, so for now, I just need to remember to have patience and enjoy the journey.