This has been on my mind for a while. Lots of friends are asking me for advise about their interest in pursuing courses on computer science (undergrad or grad).
First things first: I do have both CS and EE degrees (from Oregon State University), but that was from the 1980s. The world of computer science has evolved significantly since those days. I got to be on APRAnet then and it has evolved into what the Internet today. In that process, lots of the types of knowledge that one needs to do computer science – as an academic program – has also changed – but not evenly across the world.
I do mentor/advise startups and if any of them come to me with proposals that involve buying hardware, setting up software as part of the servers etc, I will promptly throw them out. Create your stuff on the cloud – AWS, Google, Rackspace, DigitalOcean etc. Lots of them out there. At some point, when your project/start-up ideas have gained some form/shape, and you have paying customers, you could consider running your own data centers using Red Hat Open Stack and Red Hat OpenShift to make sure that you have a means to run your application in-house or in your own data center or onto the public cloud seamlessly.
So, likewise, if anyone is keen on doing a CS degree, do consider the following (not an exhaustive list, but a starting point):
- Do look at courses available online (Khan Academy, Coursera, EdX) and understand the breath and depth of what is out there.
- Learning online is a big challenge – especially for adults (atleast it is for me). I think I can manage the courses, but having to juggle the course and life when you don’t have a supporting group of classmates, it will be a struggle.
- If you are already keen on something – like game development, or artificial intelligence etc, do look out for the sites that are specialised in those fields. I particuarly like fast.ai for AI related stuff because of the use of Jupyter notebooks (which is really the only sane way to do anything with data science).
- Make sure you create and manage your own brand via your own blog – wordpress.com (like this blog itself), code repositories (not only code, but including documents, graphics etc) sitting on sites like gitlab.com or pagure.io (or even github.com). Create and curate your thoughts, ideas and considerations on your blog and repositories. I would not recommend LinkedIn as the primary site, but would encouage use of it as a place for links to your personal sites which should always be primary. You must always retain control of your stuff and not be dependent on others.
- Explore the various areas of interest that you have and find out who the thought leaders are including the professors. Contact them and seek their advise. Don’t be concerned that they might ignore your – which is just fine – but you never know who will respond and engage and your path will take a different turn.
If there are any other thoughts, do comment below. Love to hear from others on how they would have answered the same question.
With the rapid development in tech, do you think a 3-4year CS degree is less useful than 3-4year work experience?
ideally, it should be a combo of both. But, realityis such a hard task master. Perhaps a 4 year CS program WHILE doing open source development will be the best way forward. If you can show your mettle by working on open source projects – whatever they may be – AI, robotics, etc – and in the process build up your skills in terms of working with people remotely and online, that would being significant value to your learning in school as well as stand you in good stead should you want to be a technical founder of a startup (for example) or be a target for hiring by tech companies.
Thanks for sharing your thoughts.
Could you also comment on basic transferable skills if one were to switch from say, game development to AI?
Bottom line: Computational Thinking – https://www.cs.cmu.edu/~15110-s13/Wing06-ct.pdf. Perhaps this video: https://www.youtube.com/watch?v=VFcUgSYyRPg would help.
Kinda agree with Harish. But, I believe you have not forgotten your degree in that era when things were more “Black and White” than today. I am living in a country where “having a degree” is people see and importantly want. Unfortunately, I was reported by “degree holder” and with disdain found their “frame of mind”, at least for open source /open system work was not up to the mark. It’s a sure sign, that they have been not guided or told or practice the thing which drives the real world. A degree is all fine when your job is perfectly aligned with that, otherwise, you are on your own and it is a steep learning curve, no denying. Nope, I don’t want to sound like a pessimist nor I devalued a hard-earned degree( I am not good enough to have one, importantly formal academics never ever fascinate me) .So, the main criteria to work and involve (in your way) on open source and open system to have rigorous passion about it. Period. It shows and it reflects and it will certainly drive. Well, last but the not the least, I still remember(IIRC) I stumbled on Dr. Donald .E.Knuth’s website and ask for help and got the mini cd …circa 1999-2000 probably. But having said that, I purchased with my hard earned money, all 3 volumes of Dr. Kunth’s benchmark book(The Art of Computer Programming) and I went over it and failed miserably to decipher most of the things, because of lack of formal training(see, the importance of having formal training..alas!) . One, last advises, please DO NOT run behind the glossy stuff, sticking with a single thing will give you much more benefit, if not now, probably in a lifetime, which is more important. YMMV
Don’t let others decide for you what you should be. A degree is merely a label to say that you spent some time in your life doing something. The value of the something is really on how you actually use it later. There are plenty of people I’ve had to deal with who claim to have done something akin to a degree but are otherwise clueless as to what it was all about and enough examples of the other direction – highly clued in people without time spent on academic pursuits. The Internet has fundamentally changed the way education can and is being delivered. But people perception continues. The old model was a industrial age artifact. We are in the post-industrial age and societal perceptions have not moved on yet. It will, but the timing and evenness across the world will be slow.
[…] Harish Pillay from #redhat on studying computer #science https://harishpillay.wordpress.com/2018/06/25/so-you-want-to-do-computer-science-huh/ […]
[…] So, you want to do computer science, huh? […]