A few years ago I completed a Biology BSc (Scottish degree) but decided I didn't really want to follow that career path. I decided to do a conversion IT with Web Development MSc (which I passed with merit), hoping that it would maybe allow me to get entry into a career as a developer. In a way it has, I have been working for over a year creating basically scripts in a rather old database language (Dataflex 3.2!) as well as doing other odd programming jobs which no one else had time or inclination to do at the company I work for.
However, I am at a point where I am not really enjoying the job much, just because I don't feel I am learning much or developing anything at all exciting. I am fairly well off and have enough money to live off for a year or so, or pay a 3 or 4 of tuition fees at uni.
I mention the latter because I have been considering going back to uni and doing a CS degree, so I can maybe get a better development job. However, I would much rather focus on learning C# (which isn't really offered) and getting MSCD / building of a portfolio of projects for a year or so. It would obviously be a lot cheaper than self funding a degree, but I have heard mixed review of how useful certifications are. Some people seem to say they are a great platform for getting into a C# job, others that employers ignore them. I actually know of some people who have manged to get to job interview stage on basis of certifications and got the job because they proved there skill in interviews. But I am not sure if this is unusual.
If anyone wants to share their experience of either, I would very much appreciate hearing from you.
My employeer didn't ask me for certificate. They just tested me in person in the conference room. Honestly, the true C# skill is the skill of navigating MSDN and understanding documentations. The C# syntax is basically the same as C++, but, simplier. But, to be able to look further than basic syntax, reading documentations becomes the key, which I say most of BS degree lacks.
Anyway, for very large org, I recommend you get a certificate as they don't have time doing interviews as I described. This is typical in large org, very impersonal and cold, but, that cannot be helped.
@poetofzwan: Certifications do nothing for you but make resumes stand out from the next guy. When you get to the doorstep of your employer it boils down to who knows what and who does not. I have been a paid programmer for 15 years. I have been programming far longer than that. In all of that time I have never seen a certificate get a person a job.
I have seen far to many people with certifications who did not know anything about the content their certification was supposed to certify. I would say they had book knowledge rather than real knowledge. When reality stepped into the picture they were completely unable to connect their training to the task at hand.
While I would encourage you to get an education that also has limited value. To be the most effective to your future employer you should gain practical knowledge in your chosen language. At my current employer I started with zero percent real life experience in c# but several years using vb.net. As I knew the underlying skill of coding (in any language), I was coding better on day two than most veteran c# coders. I have personally fallen in love with C# and use it in 95% of my projects. I still occasionally use VB.NET when the task at hand fits the language best. I would encourage you to write as many "pet projects" be they for yourself or your favorite charity. Heck my first pet project in c# was to code a program to control my DVD changers and inventory my DVD collection. While not your typical project I learned serial communications, database creation, and multithreading.
@magicalclick and @lensman Thanks for your responses. I was thinking this may be the case about certifications. My basic reason for doing a certification as well as building a portfolio of actual code is to simply have something on paper to prove to prospective employers that I didn't just take a year out (I certainly don't plan to do that).
Would either of you or anyone make an argument for doing a second degree? Will I seriously miss out on any knowledge by not having a CS degree? I feel to a certain extent that I don't need any more uni experience on my resume, because I was fortunate enough to go to a good uni and that seems (wrongly perhaps) in many case to mean more than the actually degree. Really what I am short of is (proper) development experience.
@poetofzwan: There's a lot you can learn taking a CS degree, but whether or not it's required ... it depends on your current knowledge and your goals. Where do you see yourself, as a developer, in 5 years?
A degree can help you figure out the things you should know ... but only you can really put that theory into practice, and prove to employers that you are capable of fulfulling a role they are willing to pay you to fill. Self learning and online courses will also give you that knowledge, but do you have the self-discipline and desire to do it on your own?
Also a degree will prove a certain amount of theoretical and practical application, but it's just enough to get an entry level position, unless you are a superstar or supplement your learning with sample code that you create over time.
It's a tough decision.
It's not a matter of having or not having the knowledge that a CS degree would impart you.
Employers look at degrees and certification for a number of reasons:
If you have a certification, the employer is reasonably certain that you had exposure to all the material that was required to get that certification.
If you have a degree (and this shouldn't apply to you, as you already have one), it means that you can target a long term goal and have the will to attain it. Plus, see #1.
It's a very simple early screener. Unless your resume shows exceptional experience, not having a degree pretty much shuts the door for even the phone interview, as there are so many "degreed" candidates for any given job.
I would probably go for a second degree, but more for the theoretical aspects of it other than any practical hands on C# experience.
Will I seriously miss out on any knowledge by not having a CS degree?
In a word, yes.
Unless you can answer these questions (in principle, not expecting you to know detailed specifics):
You know how process context switching works, right down to the CPU microarchitecture level
You can construct a regular expression parser (that is, a program that will execute a passed-in regular expression on a given string)
You can derive business entities from a situation description and construct a fully normalised and horizontally-decomposed relation system
You can implement a simple 3D raster engine with both the Painter's Algorithm and Z-Buffering and explain which one is better
You can delve into the philosophical moral implications of fiddling with complex neuron simulation
You can manage a team project, from inception to delivery to lifecycle management, and explain why the Waterfall model is not well suited to every project.
and so on...
bonus points if you can translate the "CS-speak" into plain english
A CS degree isn't needed for most business IT jobs, such as LoB application development, but you'll find yourself getting burned-out quickly. With a proper CS degree you'll have a wide and varied skillset (the things I've mentioned were all covered on my degree course) that will ensure your long-term employability. You won't find many "coders" over the age of 35, by then they all get into management and whilst that requires less technical knowledge you'll find your project management and communication skills become all the more important.
Ditto ... I feel the age discrimination. I started programming on a TRS-80 nearly 30 years ago. It's hard to believe how much I still have to learn. <sigh> It's a double-edged sword.
Seriously, though, it's true that when I started, everyone was older than me, and now, just about everyone is younger than me. So, it does frighten me to imagine that I have to one day get into management just to stay employed. I hope the industry is really changing and realizes that experience matters and not just whether you can get your young coders to give up 60 hours a week of unpaid overtime to "change the world".
My employer will literally throw your resume away unless it has a Bachelor of Computer Science or Computer Engineering on it if you intend to do software development. There is a work around, in that it once you get a job "on the inside", you can usually transfer to another position without meeting all the "outside" qualifications.
They only recognize a short list of certifications, most of which are industry certifications (run by trade groups or non-profits) that have ISO backing/accreditation. They do not recognize corporate certifications, in general.
They literally use your education, # of recognized certifications, and relevant work experience to come up with the exact salary they will pay you. To the dollar.
CS degree is both practical and impractical at the same time. It is impractical because they are very basic and rarely enough for the task at hand. It is practical because that tiny extra knowledge of every field of CS study will help you solve problems from different perspectives.
It makes you a more well rounded person, which always comes in handy. It is like CEO who knows a little of everything goes a long way on properly managing and making decisions. Otherwise, you ended up with tunnel vision, which is not wise.
So, I still recommend you to get a bacheloar CS degree. Or you can learn the same topics offered by uni by yourself, which is actually better than getting babysit by the uni professors.
The problem with doing it yourself is there is no evidence that you did it (and how well you did, a GPA). And the professor babysitters end up making you work hard on subjects that you'd find crazy boring otherwise, in order to chase that elusive A.
I don't have a degree and it doesn't seem to hurt me in job searches at this point, now that I have ~4 years of professional experience. However, I've spent a lot of time learning about and reading books on CS topics, including quite "academic" stuff like programming language semantics and type theory, so maybe I'm not typical of self-taught programmers. Not having a degree made it much more difficult starting out, but I got in "through the back door" by getting a non-programming job at a company which gradually gave me more programming responsibilities as they realized I could do it.
I wonder if there's some way to combine your biology study with software development? I've found that in jobs that are about applying technology to some other domain of business or endeavor - which is just about all of them - (mis)communication between the business/domain experts and the technical experts is usually the biggest bottleneck, and it helps a LOT to have people who understand both. Plus, it seems like it would just be more interesting than generic business programming jobs, and probably more of a growth area in the next couple decades.
BTW, if you can't afford expensive books on computational algorithms note that you can buy a Nook refurb for $80 and even though Google has banned many ISBN searches, Google isn't the only search engine on the interwebs. You can most likely 1000% get all the pricey books you want for free for your in .pdf format then dump them in the My Documents folder on the Nook device and read away.
If anybody tries to pass judgement, you tell 'em Bill does the same thing. He says not to use strong words.
WSJ: You watch physics lectures and Harlem Globetrotters [on YouTube]?
Gates: This social-networking thing takes you to crazy places.
WSJ: But those were stolen, correct?
Gates: Stolen's a strong word. It's copyrighted content that the owner wasn't paid for. So yes.
Thanks for all the responses, many of you have definately made a good case for doing a degree. However, I wonder if any of the negatives would put anyone off (if in my position):
- I wouldn't be finished until I was in my early 30s.
- I wouldn't get any industry experience in that time (well perhaps some during summer, if I am lucky).Also, no C# learning in my studies as most universities seem to use Java.
- (As mentioned) more cost involved.
Also, is there any good alternatives to certifications & uni? Maybe a fast-track course or something?
Well, I started out as a Biologist too (I studied at Edinburgh). I also did an MSc ('Biological Computation' which was maths, statistics and computer science for biologists). My first commercial job was off the back of my MSc project. I later did a biology PhD, but went back to coding after.
I don't have a CS degree, but I now work as a senior developer (yes, W3bbo a 40 year-old who still codes!). Most of CS degree knowledge is not needed for most development work; most development work is just like the boring stuff you're doing now - a means to an end not an end in itself.
You say that you're bored with your job because you're not learning anything new : get used to it. Most developers don't work on interesting, cutting edge projects; most of us work on business systems and we spend most of our time maintaining existing code rather than adding new code. I have now been working on the same code-base in C# and SQL for the last 6 years with only one excursion into the creation of a new system, which I have now spent 2 years maintaining and expanding. If you want regular change, you're going to have to get experience and start working as a contractor.
If you don't have a CS degree, some employers will pass you over without a second glance. Smaller companies may well be more inclined to at least give you an interview (perhaps with a coding test).
You need to figure out what you want first and then do what you need to get it:
If you want to work for a larger company, or work on cutting-edge software, then a CS degree might be the way to go.
If you want to work for a smaller company, experience and being able to demonstrate knowledge is a good way to go (from my own experience).
If you're just bored of your current job and want a change, then do something to demonstrate your abilities (like an open source project in C#) and start looking at the job adverts. There's nothing wrong with changing jobs a few times to gain experience of different working environments, but don't do it too much or it will put potential employers off.
Bill says you don't need college anymore. Bill says your free online Wikipedia education equates the fancy boarding school experience he knows so well.
Go to your potential employer and quote Bill. Just never stop quoting him. Practice what he preaches.
Actually, apply at Microsoft, Bill's own company, and tell them how overrated our educational system is, then ask them for a 200k job and a level up to 64. Tell them you've seriously watched some awesome lectures on the intrawebs and that it is enough.
Comments have been closed since this content was published more than 30 days ago, but if you'd like to continue the conversation, please create a new thread in our Forums, or Contact Us and let us know.