Release Management Authors: Pat Romanski, Elizabeth White, David H Deans, Liz McMillan, Jnan Dash

Blog Feed Post

Open Source Degree: An alternative to a computer science degree


So, you want to be a programmer. Well you need to get a computer science degree right? Maybe, but would you like to know about a free alternative?

Why not a computer science degree?

Some of the best programmers have a computer science degree and some of the best programmers don’t.

In all the times I’ve been involved with hiring programmers (which is countless), them having a degree was never a factor. The only time it is ever a factor is in choosing to give them a phone screen or not.

Does that sound crazy? It is a little crazy sounding; the fact that someone could spend 4 years and enough money to get a very nice car and all it gets you is a foot in the door. Here is an excerpt from Wikipedia:

“A Bachelor of Computer Science degree is normally required in order to work in Information technology industry”


This statement is false. Of all the people I’ve meet in my career, I would guess that at least if not more that half the people that were working in IT do not have an IT related degree.

I have heard constantly the same complaint about people coming right out of collage, “They have no idea how to program”. To add a little context, what this means is they don’t have the skills needed to be a professional programmer.

What is the alternative?

You still need that foot in the door. If you feel you could read a website or pickup a book and learn a skill, then I have a program for you. A program that will get you a full-time job faster and cheaper than a computer science degree, “The Open Source Degree”.

Free Software

If you have not heard of open source software, prepare to be amazed. There are very talented programmers out there that work for free. They write software without being paid and then give the results away for free. I’m giving you a very simple take on this topic but be reassured that you can become part of this movement and give yourself a great education at the same time.

How do you get started?

Find a project.

What excites you about programming as a job? Is there a specific company you would like to work for, say Google or IBM? Is there a specific industry, say gaming or social networking? Do you want to work at a startup or a fortune 500? Do you want to focus on Windows or OS X? Do you want to do websites or desktop applications? Do you want to work in the mobile space?

Once you have narrowed that down, it’s time to find a project in that area. Just do a web search for “open source” and the type of project you are looking for to get a list.

Don’t Start Your Own Project

If you have thoughts of starting your own project, I’m going to advise you against it. If the goal is to be a professional programmer, you need to learn how to work with other programmers as a team. A flaw that programmers can have who have never worked with other programmers can be that they have their own way of doing things and are resistant to change. When you work professionally, you need to work the way the company wants you to work. Sometimes programmers will give themselves bad names by coming into a company and fighting with the existing team over how they work. Give yourself a good name by being willing to work anyway you’re asked.

Is this a good fit?

Now that you have picked a potential project, you’ll need to find out what technologies they are using and start reading up on them. You need to find out how the members of the project communicate and get hooked in and start reading. Does the technology look cool and do people communicate openly and often? Then introduce yourself and say you want to program on the project. Be patient, sometimes people get busy and messages get missed, so if no one welcomes you right away, try again. Someone should then show you the ropes and tell you how to get started on things. Don’t skip this step; you need someone to be your mentor. If no one is willing, find another project.

By this point you should have a good feeling on whether or not this is going to be a good fit for you. Some projects consist of one person and some will have hundreds of programmers. You are going to get more value from working on a project with more than just a hand full of regular programmers, but even with a small project there can be value. Just remember, you want an education so you need people to give you feedback on your work.

Now for some good news and some bad news. The bad news is you don’t actually know enough to really be able to tell if your chosen project is a good fit. That’s okay; it’s all part of the education. The thought of “is this a good fit” will come up multiple times in your journey. The good news is no matter what you pick you are learning valuable programming skills. If you start out with a project and then switch to another, don’t worry it’s not time wasted.

What skills will I learn?

Working on open source projects are really not that far away from a real programming job. This is because open source programmers take their projects very seriously. They care very deeply about what they do and for the most part will have quite high standards. The following is some of the skills you can pick up.

Reading Code

I bet you think being a programmer is all about writing code, WRONG! It’s all about reading code, every now and then you get to edit code and sometimes you get to write new code. When you get a job more than likely you will be working on an already established code base. The first thing your new boss will have you do is work on a bug. This is also how most open source projects work.

Code has bugs for lots of reasons, but you are going to have to understand what is already there before you can correct it. When you get to do something fun like add a feature, you have even more reading to do. You will need to find where in the code base it will need to be added. You’ll then read the code of similar features to see how it needs to be added.  You are then going to have to be sure you don’t break other parts of the system. So you will need to look at the code of all the parts that your new feature will interact with.

Don’t worry reading code is fun. It’s like organizing all the parts of a puzzle together. Once you’ve done that and putting the puzzle together goes smoothly, you feel like the master of the universe.

Getting a development environment setup

Almost all software projects require a little setup work and some require a lot. Like most things in software it will be a little different with each project. When you start a new job, sometimes the environment will be setup for you and sometimes it won’t. If you are in a situation where you have to get it setup and you have this skill, you will make a good impression on your new boss.

Following a coding standard

I bet if you saved all the time that was spent discussing if the curly brace goes on the same line or the next, we would save the world. Well I guess not, but still you would save a whole bunch of time. To avoid wasted time, most projects will have a code standard; this is something that says how you should format the code. Most software shops will have one too. So it’s best if you get used to the idea that you will not be able to write the code the way you want. When you get to your new job, don’t blame me if you get a pair of dead eyes looking back at you if you just ask why the curly brace is on the same line, I warned you.

Revision control

Most code is written in plain text files. There is an issue that exists when more than one programmer wants to make changes to the same file at the same time. To help manage all the issues this brings up, we have revision control.

Revision control is normally a software system that will track changes to the code. It will also help get your changes to the other programmers on your team and vice versa. It will help resolve editing conflicts and act as a sort of code backup.

These systems always seem simple at first, but then get very complicated very quickly. The only way to learn is by using them.

All modern open source projects use revision control. So you will get daily practice at using it and lots of help when you get stuck.

Taking criticism

Your work will be criticized, sometimes it’s friendly and positive and sometimes it’s mean and unhelpful. Most programmers love what they do and take great pride in their work. This is a good thing, but it means when someone makes a critique of their work they can take it as a personal attack. My work has been getting criticized for well over ten years now and even to this day I feel the sting when someone criticizes my work. Over the years, I have learned that it’s all part of the job and that I need to listen closely to what everyone says. In doing so, not only have my skills gotten better but I also come to understand other programmers better.

While working on your open source project, take every opportunity to get feedback from other programmers; view them as teachers. Think about what they are saying and if it seems correct, make the changes they suggest. Make it clear that you want feedback. Other programmers may be reluctant about offering feedback because they don’t want to hurt anyone’s feelings.

Independent research

The modern day programmer is expected to be a technology expert. With the staggeringly huge collection of technology out there, who can be an expert at everything? You are going to be expected to be able to become a trusted adviser on many technologies. When challenged with a question on a technology, don’t say, “I don’t know”, say, “Let me find the answer for you”.

With this programming education, you will not be given a list of textbooks to buy. You will need to find your own reading list. This is an important part of not just learning how to program but will also serve you once you are in a job.

You need to find two types of sources for each technology you will learn. The first is good foundational material. This could be in the form of books, online tutorials, video series or whatever suits your learning style best. The other is a good news source. The news source will keep you current on a technology and will lead you to other things you should learn. Each technology tends to have its own unique news source.

Ask the other members of your projects what they would suggest reading up on. Ask them where they get their news. While working on your project, if you see mention of technology or terms that you don’t understand, add them to a “must read” list.

Keeping current on technologies you know and being able to learn new technologies on your own will be a skill you will need and use your whole programming career.

Being self-motivated

To be a good programmer you need to be able to focus and work on a task without getting distracted. This is very hard to show to an employer in an interview

When working on your open source project, you will have no manager, you will have no deadline, there are no performance reviews and no one will be on your back. Well, one person will, and that’s you. You need to become your own taskmaster and work yourself hard.

When you talk to a potential employer and show them that you wrote lots of code without anyone else pushing you to do it, they are going to feel pretty good about you being self-motivated.

Ticketing systems

Most companies have some form of ticketing system. It’s just a central place that allows bugs to be reported and new features requested. The main goal of a ticketing system is to help keep track of the work that needs to be done.

Your open source projects should have a ticketing system also and because the programmers can’t just walk over and talk a co-worker a lot of communication happens in the ticketing system.

For a ticketing system to be effective people need to be disciplined in its use. Coming from the open source world you can show you have this discipline.

Workplace politics

Most all workplaces have some kind of politics going on. It can be as simple as two people have differing ideas on how to do something and pushing to get their way chosen. What ends up happening can be very subtle but you need to know what it will mean to you and your job. You need to learn how to spot it and how to come out of it with a positive result for you.

As you watch the communications on your open source project watch out for people disagreeing. Pay close attention to how they talk, some people will be clear and direct and some people will be a little sneaky. Get used to the idea that people have motives of their own and would like to see things done their way even if it’s not truly the best idea.

If you have been mindful and observant once you enter the workplace, hopefully you won’t get blindsided by the office politics and get entangled in something you will later regret.

Written skills

I need basic help

Computers are just very complicated calculators. So knowing math is much more important than written skill? I wouldn’t agree with that. You can have only basic math skills and it will not really hold you back. What will hold you back is having poor written skills. In the programming workplace you will be expected to write everyday. If you have poor written skills people will not give you the respect you deserve. You will also be passed over for tasks that require a written report.

If you need extra help, find someone to review your written work. This doesn’t have to be from your open source project, maybe there is someone you talk to on instant messaging regularly that can help.  Have them review everything you are going to post or email.

Practice makes perfect and helps get you a job

You will need plenty of practice. Use your experience in learning your chosen open source project as the source material. Create a blog and write a post every week about your experiences. It doesn’t matter one bit if no one reads your blog. This is an exercise to keep your written skills sharp. It will also give a future employer something to read when they do a web search for your name. They will be able to see how good your written skill are.

Write for a well known blog or magazine

There are countless programming blogs and magazines. They are all hungry for content. If you can bag a big name blog or magazine it will look very good on your resume. The goal here is not to get paid but to help land a future job. When sending copies of your resume around include a PDF of the work you did.

Write a book

This is kind of a unique idea but you could write a book. Not a big one but something around 40 to 50 pages. You could pull from your experiences of working on the project. Send it to a few publishers (Developer.Press is great for this format) or self-publish it on Amazon. Amazon will let you do this for free. Then send out free copies to anyone who is willing to write a review of it for you, your buddies on your project would be good people to ask.

Also include a copy when you send out your resume. A potential boss would be very impressed to see a published book with reviews.

Spoken word

As a programmer, you will need to be able to clearly communicate very complicated ideas. You’re going to have to do this even before you have a job. You’ll have to do it in the interview for your job. In all parts of your interview, you’re going to be explaining very technical ideas. So before that day comes you need practice.

Even in this day and age of virtual friends and meetings, people still love to get together and talk. These people meet up in groups all over the world. Try to find a group that is specifically tailored to what you are doing. Even if you can only find a generic group, go and attend the meetings (meetup.com is a good place to start looking). Meetings are usually held once a month and they should be free to attend. Hopefully they will have someone giving an interesting talk, but even if you don’t care about the topic of the talk, you need to go.

Remember, your goal is not to learn from the talks, but to meet and talk to the members of the group. The great thing about the people that go to these groups is, most of them love to talk. Take the opportunity to ask lots of questions and learn all kinds of good stuff from the members.

Your next goal is to talk at the group. Find the organizer of the group and tell them that you really want to talk at the group one day. They can guide you in your goal by giving you advice on how best to go about it. Once you’ve given the talk, you can now add speaking at a local group to your resume.

Speak at a conference

You may never have heard of any, but programming and software technology conferences are big business. If you can land giving a talk at a conference that adds a big gold star to your resume.

If you want to go for it, you need to be always thinking about good ideas for talks. Every time you think of one, note it down. Then, keep an eye out for what are called “calls for papers”. This is when a conference is taking talk proposals. They will normally just want a summary of what the talk will be about. You don’t have to have a finished talk at this point. Submit as many ideas as you can. Be aware most conferences, if they are not local, will pay to fly you out and to put you up in a hotel, but not all do, so check before applying.

It’s very competitive; so don’t be disappointed if you don’t get accepted. If you do get accepted, practice your talk at your local group first.

Lots of other good stuff

You will learn lots of other good skills, these are just some of the ones I think are the most interesting to a potential employer.

Continuing your education

You are not going to get a well-rounded education by only working on one project. There is an amazing amount of choice in what to do when a project is started. That means the skills you are learning and the things you are seeing are only a small portion of the possibilities out there. At some point you need to go work on another project to get exposure to other technologies and ways of thinking. This may be hard, but it will make you a better programmer. You don’t have to abandon your old project completely but you should spend less and less time on it.

Should I go to collage now?

Going the open source degree route will give you a very practical education in programming. One that is good for the majority of jobs out there. More than likely you will not be learning the foundation aspects of computer science. You will not be learning how hard drives work, or how CPUs work. You won’t learn about algorithms like quicksort or binary search. There are programming career paths you may want to take that really require you have a collage style education.

There is very big difference between the two. An open source degree will cost you nothing but your time and dilligence and a collage degree will put you in a good amount of debt if you can’t pay for it as you go.

My advice is start with the open source degree; give it a solid six months. You will know for sure then if you are going to need a collage degree.

How long will this take?

It will take you as long as you need to get a job.

The goal of this degree is to help you get a job. As an example, you could spend six months working on projects and following the degree program. In this time keep an eye on the job market you are interested in. After the six months, start to put a resume together. Include all of the things you have been doing. Now ask the people in your project and your local meet up group to take a look at your resume. These people have been in your position and they have more than likely reviewed resumes and interviewed people for jobs. Have them review your resume and listen to their feedback. They may even know people who are hiring.

While looking for a job keep working on the open source degree. The more you can add to your resume, the better your chances are of getting a job.


Calling this program the open source degree obviously is a little tongue-in-cheek. What I hope you have seen is that a collage degree doesn’t make you a programmer. You need to make yourself a programmer. The open source degree is a guide to help you focus your efforts as it pertains to getting a professional programming position, all while contributing something positive to the world.

If someone was to come and interview with me and they had done most of the above things, I would chose them hands-down, over a recent collage graduate and I would be excited to do so.

Do you agree or not? Let me know what you think. Please include where you are currently in your career path.

Sam Hennessy is a PHP software architect, speaker, trainer and author and has worked professionally with PHP since 2000. Sam worked for Zend Technologies as a Profesional Services Consultant working with companies large and small including Fortune 500′s. He lives in the Boulder, CO, USA area and is originally from the UK. His latest book, PHP Array Filtering, is available at DeveloperPress


Read the original blog entry...

More Stories By Bob Gourley

Bob Gourley writes on enterprise IT. He is a founder of Crucial Point and publisher of CTOvision.com

@ThingsExpo Stories
DXWorldEXPO LLC, the producer of the world's most influential technology conferences and trade shows has announced the 22nd International CloudEXPO | DXWorldEXPO "Early Bird Registration" is now open. Register for Full Conference "Gold Pass" ▸ Here (Expo Hall ▸ Here)
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Join IBM November 1 at 21st Cloud Expo at the Santa Clara Convention Center in Santa Clara, CA, and learn how IBM Watson can bring cognitive services and AI to intelligent, unmanned systems. Cognitive analysis impacts today’s systems with unparalleled ability that were previously available only to manned, back-end operations. Thanks to cloud processing, IBM Watson can bring cognitive services and AI to intelligent, unmanned systems. Imagine a robot vacuum that becomes your personal assistant tha...
"MobiDev is a software development company and we do complex, custom software development for everybody from entrepreneurs to large enterprises," explained Alan Winters, U.S. Head of Business Development at MobiDev, in this SYS-CON.tv interview at 21st Cloud Expo, held Oct 31 – Nov 2, 2017, at the Santa Clara Convention Center in Santa Clara, CA.
I think DevOps is now a rambunctious teenager - it's starting to get a mind of its own, wanting to get its own things but it still needs some adult supervision," explained Thomas Hooker, VP of marketing at CollabNet, in this SYS-CON.tv interview at DevOps Summit at 20th Cloud Expo, held June 6-8, 2017, at the Javits Center in New York City, NY.
Recently, WebRTC has a lot of eyes from market. The use cases of WebRTC are expanding - video chat, online education, online health care etc. Not only for human-to-human communication, but also IoT use cases such as machine to human use cases can be seen recently. One of the typical use-case is remote camera monitoring. With WebRTC, people can have interoperability and flexibility for deploying monitoring service. However, the benefit of WebRTC for IoT is not only its convenience and interopera...
Cloud-enabled transformation has evolved from cost saving measure to business innovation strategy -- one that combines the cloud with cognitive capabilities to drive market disruption. Learn how you can achieve the insight and agility you need to gain a competitive advantage. Industry-acclaimed CTO and cloud expert, Shankar Kalyana presents. Only the most exceptional IBMers are appointed with the rare distinction of IBM Fellow, the highest technical honor in the company. Shankar has also receive...
It is of utmost importance for the future success of WebRTC to ensure that interoperability is operational between web browsers and any WebRTC-compliant client. To be guaranteed as operational and effective, interoperability must be tested extensively by establishing WebRTC data and media connections between different web browsers running on different devices and operating systems. In his session at WebRTC Summit at @ThingsExpo, Dr. Alex Gouaillard, CEO and Founder of CoSMo Software, presented ...
Business professionals no longer wonder if they'll migrate to the cloud; it's now a matter of when. The cloud environment has proved to be a major force in transitioning to an agile business model that enables quick decisions and fast implementation that solidify customer relationships. And when the cloud is combined with the power of cognitive computing, it drives innovation and transformation that achieves astounding competitive advantage.
WebRTC is great technology to build your own communication tools. It will be even more exciting experience it with advanced devices, such as a 360 Camera, 360 microphone, and a depth sensor camera. In his session at @ThingsExpo, Masashi Ganeko, a manager at INFOCOM Corporation, introduced two experimental projects from his team and what they learned from them. "Shotoku Tamago" uses the robot audition software HARK to track speakers in 360 video of a remote party. "Virtual Teleport" uses a multip...
Data is the fuel that drives the machine learning algorithmic engines and ultimately provides the business value. In his session at Cloud Expo, Ed Featherston, a director and senior enterprise architect at Collaborative Consulting, discussed the key considerations around quality, volume, timeliness, and pedigree that must be dealt with in order to properly fuel that engine.
IoT is rapidly becoming mainstream as more and more investments are made into the platforms and technology. As this movement continues to expand and gain momentum it creates a massive wall of noise that can be difficult to sift through. Unfortunately, this inevitably makes IoT less approachable for people to get started with and can hamper efforts to integrate this key technology into your own portfolio. There are so many connected products already in place today with many hundreds more on the h...
When shopping for a new data processing platform for IoT solutions, many development teams want to be able to test-drive options before making a choice. Yet when evaluating an IoT solution, it’s simply not feasible to do so at scale with physical devices. Building a sensor simulator is the next best choice; however, generating a realistic simulation at very high TPS with ease of configurability is a formidable challenge. When dealing with multiple application or transport protocols, you would be...
Detecting internal user threats in the Big Data eco-system is challenging and cumbersome. Many organizations monitor internal usage of the Big Data eco-system using a set of alerts. This is not a scalable process given the increase in the number of alerts with the accelerating growth in data volume and user base. Organizations are increasingly leveraging machine learning to monitor only those data elements that are sensitive and critical, autonomously establish monitoring policies, and to detect...
In his keynote at 18th Cloud Expo, Andrew Keys, Co-Founder of ConsenSys Enterprise, provided an overview of the evolution of the Internet and the Database and the future of their combination – the Blockchain. Andrew Keys is Co-Founder of ConsenSys Enterprise. He comes to ConsenSys Enterprise with capital markets, technology and entrepreneurial experience. Previously, he worked for UBS investment bank in equities analysis. Later, he was responsible for the creation and distribution of life settl...
In his session at @ThingsExpo, Dr. Robert Cohen, an economist and senior fellow at the Economic Strategy Institute, presented the findings of a series of six detailed case studies of how large corporations are implementing IoT. The session explored how IoT has improved their economic performance, had major impacts on business models and resulted in impressive ROIs. The companies covered span manufacturing and services firms. He also explored servicification, how manufacturing firms shift from se...
DevOpsSummit New York 2018, colocated with CloudEXPO | DXWorldEXPO New York 2018 will be held November 11-13, 2018, in New York City. Digital Transformation (DX) is a major focus with the introduction of DXWorldEXPO within the program. Successful transformation requires a laser focus on being data-driven and on using all the tools available that enable transformation if they plan to survive over the long term. A total of 88% of Fortune 500 companies from a generation ago are now out of bus...
The Jevons Paradox suggests that when technological advances increase efficiency of a resource, it results in an overall increase in consumption. Writing on the increased use of coal as a result of technological improvements, 19th-century economist William Stanley Jevons found that these improvements led to the development of new ways to utilize coal. In his session at 19th Cloud Expo, Mark Thiele, Chief Strategy Officer for Apcera, compared the Jevons Paradox to modern-day enterprise IT, examin...
IoT solutions exploit operational data generated by Internet-connected smart “things” for the purpose of gaining operational insight and producing “better outcomes” (for example, create new business models, eliminate unscheduled maintenance, etc.). The explosive proliferation of IoT solutions will result in an exponential growth in the volume of IoT data, precipitating significant Information Governance issues: who owns the IoT data, what are the rights/duties of IoT solutions adopters towards t...
Amazon started as an online bookseller 20 years ago. Since then, it has evolved into a technology juggernaut that has disrupted multiple markets and industries and touches many aspects of our lives. It is a relentless technology and business model innovator driving disruption throughout numerous ecosystems. Amazon’s AWS revenues alone are approaching $16B a year making it one of the largest IT companies in the world. With dominant offerings in Cloud, IoT, eCommerce, Big Data, AI, Digital Assista...