Rebooting for 2020

18 Apr 2020

Hi! If you’re reading this, you’re pretty far down the rabbit hole. I’m looking to pivot into Software Engineering, starting with Full Stack Development. I’ve refreshed this blog thanks to this excellent guide, for tracking my progress and keeping myself motivated, as well as practical considerations to practice. Plus, it’s just another project for my portfolio. Already brushed up on my git and markdown.

Initial Thoughts

My overarching goal is to pivot directions into Full Stack Development (as stated). However, to do so I need to develop a necessary set of skills. This is where things get kind of chaotic. There are three general routes into software engineering (SWE): university, self-taught (DIY), and bootcamps. Obviously, embarking down the DIY route, I need a plan/schedule of what to study and in what order. However, this is curiously…chaotic. What’s interesting to me is looking through the 2019 Stack Exchange Developer Survey Results:

So what’s the breakdown? At a very simple level, it’s basically 50% of developers went the university track, 15% went the bootcamp track, leaving roughtly 35% to go the DIY track (I know, oversimplifying terribly). The point is that with such a significant number, it’s a little surprising that there aren’t clearer plans available for free. But I suppose the bootcamps are clear, because they make money, so they can spend money publicizing. So how’s a single developer going to compete? Especially when they could just MONETIZE?

Where I Stand

I’m at a weird point, where I’ve done a lot of coding and programming throughout my life, just not with a goal of a career for software engineering. In fact, it’s one of the things I swore I’d never do in college. In the past two years especially I’ve done a lot of work specifically with developing skills for practical programming. A large part of my job involves working with Excel files for tracking work on various audits. These are essentially large flat files, and are more cumbersome to update than if they were stored as relational tables. Adding a submission date involves traversing the table both vertically and horizontally, rather than say appending submissions to a separate table and querying. As a result, I turned to VBA to write scripts to automate a lot of these otherwise time intensive tasks.

I also spent a lot of time learning Python, going through Python Crash Course by Eric Matthes. One part of it was that I needed to do tasks outside of a given program. For example, a regular data intake task required downloading an extract from a third-party vendor, however the extract was missing fields that I could access by scraping the HTML. For another part, I was trying to get into working with APIs and having a load of trouble with R. The final part was that I wanted to round out my skills by extending from R into Python.

Where Do I Go

So I need to develop practice with front-end development skills specifically. Javascript, and a web framework, as well as more practice with HTML/CSS, which I have some practice in but no professional experience. I also need to brush up with SQL, as well as modern updates to it like PostgreSQL, and growing more familiar with back-end development. I also need to brush up and learn related languages/apps like Git, Docker (and working with environments in general), Powershell, Linux, and more to be added as I go I suppose. I think for now, I can stick to doing MOOCs to learn languages, as I did with Python. That’s fairly familiar.

The other big thing I need to work on is the theory: algorithms and data structures. These are things where I’m probably lacking the most. For these, I think I can stick to charting through online CS courses. However, I do expect I’ll need to work through a few books and I expect will probably be the most time consuming part of all this.

What Else?

I’ll try to maintain this blog as I go. I’m also of course working, and I still have ideas for things I want to explore and projects I want to build as I go along, and more ideas to come.