At the end of 2008, I will have 3 months of school remaining. In March 2009 (*knocks on wood*) then I will have a computer science degree in Computing and Software Systems (BSCSS) -- a computer science degree that places a greater emphasis on software engineering and relevant business and management concepts than would be found in a more traditional computer science degree. Something I’ve been wanting for a very long time.
It’s been a tough and very long journey, and I’ve learned much about myself, what I’m capable of, and what my limitations are:
The Good
- Strong Object Orientated Skills - I’m a far better coder now that I’ve had formal training in basic concepts. Just having the foundations of the programming paradigm sets me up for better coding skills overall.
- Agile Programming Skills - This is my ticket to moving past analysis paralysis and towards being more flexible. I use to be so focused on long term features, but now I can break them down in to workable modules that can be done In short iterations. I now know how to look at customer requirements and turn them into features that have value. I really hope to find a job where I can apply these skills.
- Joy of Coding - I’m far happier when I craft code. Prior to going back to school, I sometimes felt lost in the dark when creating code and ended up frustrated. Now that the holes in my knowledge base have been filled, I know what tools in my belt are missing and how to get them.
- Unit Testing - learning more about unit testing has really saved my bacon on coding projects and assignments. Not just learning how to do them, but how to organize and plan for them. Overall writing test cases for my functions and methods saves me time by allowing me to find faults faster. The next step would be to automate my unit tests.
Needs More Improvement
- Project Management - I learned I’m rather bad at managing projects. I’m organized, but only in terms of coding and software. When it comes to overall vision, prioritization, and developing strategies for work execution, I need a lot of guidance. Without guidance, I get lost to the point where my work would become paralyzed. This is not a good thing because I fall into a cycle of reactive code-in-fix work. This is bad for business since it also leads to delayed deadlines and a generally slow velocity of work.
- Knowing My Work Load Limit - I’m a horrible judge of what I’m capable of doing within a single 40 hour work week. I discovered if I take too many projects all at once, my speed, adaptability, and overall happiness, will suffer. Learning how to do burn down and glide charts on my personal productivity help me judge when I’m taking on too much. Now, all that’s left is to put that into practice more.
- Becoming a Faster Coder - I want to learn how to work faster without losing quality of work. There’s only so much time I have to look things up via Google. I know I’m not a brilliant person, but I work very hard and personally I feel that my limits are not bound by the knowledge that I currently have in my head. I can expand my knowledge by simply working harder towards searching and learning for that knowledge. But to apply that knowledge within a timely manner takes a certain type of strategic skill that I feel that I’m missing.
- Finishing It Up - There are a few home brew projects I really want to finish, but midway the year I realized I bit off more than I can chew, especially with this being my senior year. If I can’t find a job right away, I will want to finish those projects up. I long for a sense of closure.
The Surprise
- The Coder Community - I never thought I would find help in others when it came to coding. There are a lot of people who share their knowledge and experiences kindly and so willingly. I previously thought all devs would be greedy with their knowledge, but in fact there was only one CS student out of many who I met in my studies at UW who was an asshole. Many have been nice about teaching techniques, methods, and skills - not just giving answers, which I loath. Also, after experiencing Seattle Code Camp v4.0 (https://seattle.codecamp.us/) and Linux Fests Northwest (http://linuxfestnorthwest.org/), I feel that Seattle is a good area with a strong community base for software developers. Everyone for the most part is super nice and I really hope that one day my knowledge will grow to the point where I could give back to that community. Next year I hope to make it to Seattle Drupal Camp (http://seattle.drupal-camp.org/) and the IEEE CompSac (http://conferences.computer.org/compsac/2009/) . Maybe try out a Seattle Mobile Meeting (http://www.seattlemobile.org/meetings.html)
Previoius 2008 in Reviews: