April 17, 2008
I’ve been asked a number of times in recent years by (usually) High School kids, as to what exactly they should do to end up being a programmer at a “Cool Web 2.0″ website (or something like that).
My response to them is almost always the same: Go get a Computer Science Degree
I then perhaps go into a discussion about how when I’m hiring and looking at resumes, especially of people without 5-10 years of solid experience anyway, that they quickly get sorted into piles of “Computer Science Degree”, or not.
Most simply put. Someone who has a Computer Science degree, has been taught the theory of programming, of algorithms. They have been taught how to ‘think’ like the computer, heck they hopefully even had to write some assembly code. They understand programming and they understand good program design (Even if they may have some ‘interesting ideas’ because of what their teachers specifically harped upon). They also understand the theories of Software Engineering and how to work as a team.
To contrast this, the other degrees, or lack of a degree … People in those categories MAY understand all of this. But it’s not guaranteed. Typically Computer Engineering students have learned much more about hardware and their programming knowledge was to allow quick one-off projects that were meant to work on chips. Computer Information Services students usually have a business degree, and were ‘also taught how to write code’. Those people without any degrees at all, may be very good at hacking out lots of code, and code that works, but not code that they deeply understand, which leads to problems later.
Yes, people without Computer Science degrees can have these skills. And as I said, if someone is giving me a resume and they have 10 years of deep coding experience, I’m not going to bother looking at the degree at all.
But in my opinion, having a true Computer Science degree under your belt is the best thing that someone without deep experience can have on their resume, and is an excellent use of 4 years of your life.
1 Comment |
PHP, Tech |
Permalink
Posted by Eli
February 11, 2008
For those that don’t know, I’ve used Mac, PC, and Linux interchangeably for a long time. Having one of each at home for a while. However; my main machine has been a windows box the whole time. I recently moved to using a MacBook Pro as my main machine for work.
It’s made me get ‘deep’ into the system instead of just using it for specific things or testing.
I will post some other thoughts later, but one thing that just came up to me again this weekend has prompted this post.
I’m really amazed at the difference between software available. On Windows, the open source community had really embraced the platform, and not only could you find any open source software that you wanted in a pre-compiled binary for Windows. But there was also just a ton of free software just for Windows out there as well.
On the Mac, it seems that the open source community has abandoned it. While the Mac is BSD at it’s core, the X-system is subpar, as it doesn’t fully integrate into the OS unless the application has been ‘aqua-fied’. But very few projects have bothered to do this, like they have for Windows. Which leaves you using fink or macports to compile the software natively, and having a very bad UI experience.
At the same time, there is a ton of Mac specific software out there to be had, but it feels to me like the Windows community 15 years ago, where everything is shareware, instead of freeware.
Shareware on the PC really died off in favor of open source, or straight freeware. Yet on the Mac it reigns supreme, with any potential software I want to use costing me $10-15
It really boggles my mind, simply because the Mac ever since OS/X has really been embraced by the programming/technical community as ‘the desktop machine to have’ … yet it doesn’t have an according philosophy with the applications that run on it.
No Comments » |
Tech |
Permalink
Posted by Eli