Saturday, January 9, 2021

My Coding Journey

I've been out of school for about a year and a half now, and I'm still struggling with the whole job hunt business. After looking at an untold number of jobs postings, at this point I see how valuable coding skills are in a wide variety of fields. I also happen to enjoy learning about programming and trying my hand at what I pick up. Since I don't have a formal computer science background, I'm trying to learn as I go and hope the skills I'm picking up will be valuable in my job search.

I have also recently seen other people, through various platforms, talk about their own coding journeys. One thing I've gathered is that a lot of software engineers and developers are self-taught and came from a wide variety of backgrounds. For my own sake, to both document my journey and to process and retain what I'm learning, I thought I'd share a weekly digest of I'm discovering.

This week, being week number one, is going to be a brief overview of where I'm coming from. Next week, I'll cover some of the highlights of knowledge I've acquired in more recent months. From there, hopefully I can go into detail about the things I'm learning week by week.

The first exposure to programming that I can recall was in high school. I don't remember what class it was for, but I remember one of my teachers was offering extra credit if we could write a little calculator program to compute solutions to the quadratic equation. I had a friend at church who taught me how to do it. With the TI-89 I had at the time, it only took a few lines to create a little function that would take a quadratic equation as input and spit out two solutions for the given variable.

My next real coding experience came when I took an intro programming class in early college. The class was taught in C. I enjoyed the challenge of trying to write programming labs and the exhilaration of finally working out all of the bugs. I think I enjoy it for the same reason I enjoy math: there is nothing like that feeling of satisfaction when you've solved a problem after having struggled with it. So even though I enjoyed the class, I wasn't convinced I wanted to change my major to CS and spend the rest of my life behind a computer.

In my early years of college, I also had exposure to MATLAB and Maple. Aside from one math lab class, I never used Maple again.  In the same way, I didn't ever program in C after the lone programming class I took. MATLAB became a staple of programming for me, perhaps to a fault, as it was just about all I used in grad school.  

I transferred schools part way through college, and my second undergrad institute was where I had my first experience using LaTeX. LaTeX is another tool, alongside MATLAB, that became indispensable to me in grad school. It's still something I use occasionally, as I find it to be superior to word processors for writing and formatting certain documents.

While in grad school, I tried at one point to pick up some Mathematica. It can be a powerful teaching tool, but since I wasn't planning on teaching after graduating and I didn't really need it for any of my own coursework and research, I ended up not spending a lot of time on it. In part it's because I found it rather obtuse. It's also heavily symbolic, which works great for some things, but I really just didn't like using it.

It took me long enough to realize, but finally at the end of grad school, I knew I needed to expand my coding horizons, especially since I knew it would make me more marketable. I started with Python. Python can be used for a variety of applications, and I figured the best starting place for me would be through data science. I signed-up for edX and worked my way through a Python for data science course taught by a fellow from MIT. Since my completion of the class, I've tried to continue to expand my knowledge through coding exercises on Leetcode and by working through additional material I find out on the interwebs. More on this next week.

I've dabbled in a few other things along the way. For the internship I had one summer in grad school, I had to pick up some Visual Basic, which I haven't used since. I tried a bit of HTML5 and CSS at some point and later started an edX course on basic SQL. Neither of these things are things I stuck with. I was thinking about doing some mobile app development. Dart and flutter were going to be my weapons of choice. I might yet endeavor this pursuit.

Git and perl are two things I have been working on. I really wish I would have learned some basic Git early in grad school. It will come in handy as I start a few personal coding projects. Perl is currently what I'm focusing most of my energy on. Of course, I feel like I would be doing it wrong if I wasn't using the llama book. If you're looking for an entertaining technical read, the llama book is it. It's also not bad as a learning tool.

Taking a look back on my coding journey up to this point in time, I notice I have a lot of aspirations, languages and skills I think it would be neat to learn, but the depth of my knowledge is still very much lacking. One of my goals this year is to change that. A tangible measure of my progress will be the completion of, or at least actual progress on, some personal projects. Stay tuned in the coming weeks for discussions on Python and perl topics and descriptions of two projects I will be kicking off with.

No comments:

Post a Comment