To be more educated or not?

diploma

…That is, more educated in the formal sense. I think nothing can replace real world experience. However, one of the questions that have been on my mind for the past year or so is if I should be going back to school. I’m 24 and I got a couple of years of work experience under my belt. I recently got engaged. If there was ever a time to go back to school, now seems like as good of a time as any.

If I decided to go back to get more education, should I go for a Masters of Science or an MBA? In the industry I’m in, I find that a Masters in Computer Science or Engineering is not really rewarding as it was for my dad’s generation from a career perspective. Today’s smart IT employers focus on what you’ve done, created, or built more than what you have studied in a classroom or years of work experience (which I think is great). I think if I go back to school for a Masters, my reasons for going would be to surround myself with smart hackers and really dig deep into exciting research. I strongly believe that to get the most out of Masters program, you need to be there for the right reasons. Go back to school to learn more, not to get ahead in a career.

On the other hand, an MBA seems much more of a career booster and would give me the businessy-types of skills that I haven’t been formally trained with. The part about this that doesn’t excite me is all the finance and accounting kinda courses that I don’t seem myself really leveraging in my career path. That side of things doesn’t really get me excited. Plus, all of my friends that are taking MBA courses say that it’s nothing special. It’s just going to be another thing you put on your resume. Which might not be such a bad thing, but for me it doesn’t seem to make sense right now to pursue that avenue.

I would love to hear from people on their reasons for choosing to pursue higher education or choosing not to or choosing to postpone it until further notice.

As for me, I think I’ll postpone until further notice. There’s so much more for me to learn through real work experience and my natural curiosity of emerging technologies.

To be more educated or not?

Prior work experience not needed?

Jeff Atwood just posted an article on the myth that the more years of experience a developer has, the better candidate they are for a position. In the article he references a previous post that spoke to the hypothesis that there is no correlation between skill in programming and experience. This is exactly what I was thinking when I wrote my reaction to disillusioned young IT workers.

I’m still early in my career and I’ve tried to stay on a career path that is driven by what I enjoy doing, which is hacking away at code. At the same time, I am not blind to the fact that companies do look for work experience in specific areas. This certainly helps you get your foot in the door. One thing I’ve struggled with is how do you make the transition into getting that sought-after experience?

While I have programmed in a number of different programming languages, these experiences are based on my own pet projects and curiosity of the languages. On the other hand, my professional experience can be summed up as a Java developer. I’ve been working with Java since I got out of school. While I think working with Java is great since I feel I can be productive in it and there are plenty of career opportunities, the IT industry evolves over time and we see other languages gain traction.

programming_languages_absolute

programming_languages_relative

I don’t have any hard statistics, but I suspect the number of core programming languages an average developer extensively works with throughout their career is probably around 10-12. If you count all the supplemental languages that come with working in certain languages, like HTML, JavaScript, or SQL, this number is probably closer to 20. That sounds like a reasonable guesstimate and if true, I’ve got a long way to go.

This got me thinking about how do I continue to learn if my day-to-day is limited to one programming language. Here’s some advice I have for other Java developers.

  • Follow open source – open source projects are a great way of getting exposure to a lot of the Java/JEE platform. The Java platform is a really big environment to be playing with. Open source has provided baselines for everything from database ORM projects like Hibernate/iBatis to MVC frameworks like Spring MVC/Struts to messaging infrastructure with ActiveMQ/Mule to web services with Xfire/Axis2. There is a lot to be learned and I never see a job description for Java developers without some mention of a Java open source project.
  • Change the focus – What I mean here is change what you are doing most of your work relative to the system. At my first job, I mainly worked on the front-end so it was all HTML/CSS/JSP and Controllers. After awhile, I was interested in doing more of the back-end and building out infrastructure with DAOs and web services. At my current employer, I started off again on the front-end. Luckily, it was with a different MVC framework so there was good exposure there. More recently, I’ve had the opportunity to work on infrastructure and I’ve been exposed to about five new technologies I never worked with before.

By doing this, I’ve gained a lot of experience in a short amount of time with respect to working in Java. Basically, it allowed me to get more in-depth experience with Java by using Java in different contexts. This is a great start and if I was planning on working with Java my entire life, I could always continue down this path but that’s not reasonable.

HR departments love to see previous experience and it reminds me of the catch-22 that recent college graduates face. They want a job but the employer wants prior experience. They can’t get experience if the employer doesn’t them a job.

I would love to hear from people who have worked with multiple programming languages and made the language transition between jobs. If a company had a .NET position or a Rails position and you never had experience in the language, what made the company hire you and allowed you to beat out other candidates that probably had more language experience than you? What inspired you to make the paradigm shift? What advice do you have for others developers with language-limited experience?

Prior work experience not needed?

5 Things I Wish I Didn’t Learn in College

Here’s a really good post on things we probably should have been taught in college.

I agree most of the items but would have placed them in different order.

I figured I’ll try to come up with a list of my own.

Here’s my list of 5 things I wish I didn’t learn in college.

  1. Useless knowledge
    How many courses did I have to take because it was simply required for graduation? As a computer science major, why do I have to take American History 101? Why am I wasting tuition money on a course that I have no interest in? I’m all for developing “well-rounded” individuals but why can’t university allow the individuals decide where they want to be well-rounded in? Just because I’m a computer science major doesn’t mean I have other interests. I had interests in psychology, film, and I’m sorry to say, math. Let me choose to take courses that interest me.
  2. Short-term regurgitation
    This is probably a by-product of the first thing I wish I didn’t learn. The fact that I had to take these mind-numbing classes that were of no interest to me, I quickly learned to memorize what I didn’t to and spit it out come test time. The fundamental problem with this is that it is blind-knowledge. I don’t know why, I just know who, what, when, how.
  3. Time Mismanagement
    I always found it funny when job interviews asked me, how do you manage your time at college? Or how do you organize your schedule if you know you have a lot of things coming up? To be honest, I didn’t learn how to management my time. I learned how to stay up late, being useless and watching Late Night with Conan O’Brien. I learned how to wait until the last minute and get things done in the nick of time. I didn’t have a day planner. I didn’t use Outlook Calendar. How many hours did I waste surfing Facebook, playing computer games, watching TV instead of getting to bed for that 8am class or studying for that test, or writing that 30 page paper. Sure I got through it, but I’m sure the quality of the work would have been so much better if I had utilized my time better.
  4. Working on a Team
    Yes, I know. This was on the other list. I put this here because my college experience with team work was generally crappy. College gave me the false impression that all group work would be like this: One or two people doing all the work, everyone else mooching off the work. There is no accountability. Professors turn a blind eye to it. The most professors can offer is “work it out among yourselves.” In college, there are your “haves” and your “have-nots”. The “haves” have the drive, determination, and interest in doing well in the courses and contributing to the team. The “have-nots” simple don’t have any interest in doing the work or contributing anything worthwhile. It turns out in the real world people take a vested interest in the work they are apart of. This isn’t true everywhere but at least you have some control over it. You can surround yourself with passionate people and, even for the dispassionate people, at least there is real accountability. Losing a job is much more of a severe consequence that a poor letter grade.
  5. Lecture Learning
    This is more of a criticism of how a lot of courses are taught. Usually there’s a single professor standing up in the front of a class with a PowerPoint presentation with about 70 slides of material. For the next hour and a half, the processor proceeds to talk through the slides. You walk out of that room feeling mind-numbing bored and sleepy. This is a terrible way to learn. It’s only one-way. There is no creativity. There’s no exploration of concepts. It’s just facts. It is because it is. There’s no room to ask “why?” or question the why. On a small scale it promotes conformism. Conform to think the same way as the previous class. New ideas are inspired by taking a step outside of conformism. With lecture-style learning, the only reason why I would pick up a book is to read about something I missed when the professor went over it in his/her slides. If the learning was more dialogue between the professor and the students, students have a vested interest in thinking about the concepts deeper than face value. They would pick up the book to not only learn more about the concepts but to come up with their own beliefs and thoughts that they can contribute to the dialogue.
5 Things I Wish I Didn’t Learn in College

A Sleepy Thought

I’m so tired. Work has just been crazy. Aren’t things suppose to die down during the holidays? Not so in my case. Deadlines are coming up and there’s still a lot left to do. I feel like I did in college before a big CS project was due. Only now, there are no A’s, B’s, or C’s. There’s only success and failure.

This leads me to some of my grips with the current education system in America. Why are there so many grading systems? And when did it become OK to be mediocre? Students are taught and trained to be evaluated on this teacher-biased scale of letters that mean different things in different places. An ‘A’ in an inner city school is probably not the equivalent as an ‘A’ from say, a Fairfax County school. In addition, there’s this ridiculous notion of people going to college with 4.0+ GPAs because they took AP, Honors, or GT (Gifted/Talented?) courses in high school. These grading policies are different all across the country. The standardized tests like the SATs try to solve this problem, but these tests do not evaluate the knowledge or comprehensive abilities of a student. It simply tests how good you can take the SATs.

As a by-product of this problem and on a more individual level, a student develops, what I believe is, a false impression of what level of aptitude is acceptable in society. I cringe every time I hear some kid say ‘I got a C on my math test!’, like they’re proud of it. Sure, maybe it’s a big improvement from the F they got last week but to initially set the standard this low advocates mediocrity and even worse, sets yourself up for failure.

I don’t think anyone should be aiming to be average or content with just ‘getting by’. Personally, I am continuing trying to better myself in all the ways I know how. This is predicated on the active realization that in order to better myself, I can’t be content with being only adequate. I want to surpass expectations, mine most importantly.

A Sleepy Thought