Warning: This entry has to do with personal/professional goals not technical content
To give you an idea of where I am coming from with this post, I'll give you a little background on me first. Last week after reading Scott Reynolds' entry about computer science and the corporate developer, it got me thinking about my current learning plan (more on that later) and thinking about priorities of subjects/projects that I am focusing on this year. Like Scott, I don't have a Computer Science degree and do at times feel like I am missing a foundation in some areas (data structures and algorithms say). So what did I study you might ask? International business ... finance (what my first major was) was a little boring so I widened the scope to International Business. I also was lucky enough to get to study abroad (Guadalajara, Mexico) for a year (weather was beautiful year round), which ended up giving me enough credit in Spanish to have a major in Spanish as well (accidental I assure you). So at graduation time, living in Indiana having an international business and Spanish degree ... what was I going to do? I wish I knew ... but I didn't. All I knew is that I needed to change “fish bowls” so to speak. Since I had a friend going to school out here in Boston at that time, I figured that Boston would be a good place to figure out what I really wanted to do.
To make a long story short, a year after moving to Boston my old knack of programming (started with BASIC - when it had line numbers - in the 5th grade) came back. I was actually an administrative assistant to start out ... but soon after automating a manual process that took 6-8 hours down to 5 minutes using Microsoft office 95 products (Access, Word, Excel) ... because I knew there was a better way than the current (and frankly I couldn't stand typing on those 3 carbon copy templates with a type writer) I was moved to the IT department. Ever since I started that automation project (in order to solve my own business problem at that time), I have been reading and tinkering with whatever would help me along the road to becoming a “real developer”. So far the road has taken me from the IT department to a startup ASP, back to another IT department and now to a software product shop.
Now that I have 7 years experience in developing, I have come to the following conclusion for developers in similar situations as mine (read: “holds a Sr. Software Engineer title but does not have a degree in Computer Science“):
Know your strengths and know your weaknesses. Work as much as you can on becoming stronger in both and don't forget the gaps. Also develop your vertical (business) knowledge, because that is most likely one of the “cards“ you have that others do not. Create a list of goals that you want to achieve (be a real programmer is a very very bad one ... you need to have specifics that are defined and obtainable, like be able to write device drivers in C++ say). Create a plan that will help you achieve your goals. Execute and stick to that plan like you are being graded on it, but re-evaluate everything every couple of months or so to make sure you are still headed where you want to go (which will change a little from time to time).
This year is the first year I have actually put together a “Learning Plan“. Originally it was a 3 month plan (quarterly), but last week after re-evaluating it I beefed it up a little and made it a 6 month plan (sort of like school semesters). I came up with 5 topics to do with technology and 1 to do with my vertical (well sort of, my vertical is actually more of financial services).
Topics are:
- Learn more about something I already know
- Best Practices and quality of developmentTopic Learn
- Computer Science and Software Engineering
- Improve productivity and efficiency
- Learn more about something I don't already know
- Current news in International Business
Each topic has 1-3 books to read, 1-2 articles to write and 1-4 “code entries“ to write. This sort of corresponds to being in college. Having to read books, take exams or prepare presentations and produce term projects.
Here is my learning plan for Spring 2005:
|
Topic |
Learn more about something I already know |
|
Books |
Essential ASP.Net Customizing the .Net Framework and CLR |
|
Topic |
Computer science and computer engineering |
|
Books
|
Design Patterns in C# Patterns of Enterprise Application Architecture Refactoring to Patterns |
|
Topic |
Improve productivity and efficiency |
|
Books |
Inside Visual Studio.Net Getting Things Done |
|
Topic |
Learn more about something I don’t already know |
|
Books
|
Beginning C++ C++ Coding Standards Programming C++ |
|
Topic |
Current news in International Business |
|
Books |
Weekly Economist Magazine |
I am also supplementing my topics with community events such as the following:
- Boston .Net User Group
- Beantown .Net User Group
- Boston Code Brew
- Boston Area Geek Dinners
- Code Camp
Right now I am about 2 - 3 weeks behind where I want to be ... so that is why I only have 8 entries this month so far ;)