Im not sure if this is the place to ask such a question but allow me a moment to provide some background.

I am currently a maintenance technician where i routinely solve various electrical and mechanical problems for automated equipment. I have a AS in applied science and a diploma in electronics technology.

If i were to get the MCSD certification would that be enough to allow me to work on open source projects?

going to a university really isnt a option for me with a family to provide for but i am trying to change fields.

Any thoughts would surely be appreciated.

  • 3
    You can work on open source projects with absolutely no qualifications whatsoever - you just have to know what you're doing.
    – Ben
    May 11, 2015 at 6:18
  • 2
    The MCSDs are tough to get, but of fairly low value and orthogonal to the skills of actually programming. Much better to guide your own learning. May 11, 2015 at 6:42
  • Unless you're a "natural" it's going to be very difficult to put in the time and focus to become proficient to professional standard. Having said that, I have met a few naturals who could just pick up things extraordinarily quickly and just intuitively knew the right way to proceed. May 11, 2015 at 11:39
  • This is off topic here, but you might find some luck in the Programmers chat once you get enough reputation.
    – enderland
    May 11, 2015 at 13:22

2 Answers 2


You're actually in a good position. Microsoft has made getting into their environment very affordable (starting as low as FREE)



And they have a huge library of resources available.


The MSDN library is all online, and while a bit "thick" to read through, incredibly useful.

Also, if you are in an area with a Visual Studio Users Group or equivalent, start going to the meetings. The one here in Denver is fantastic. We get a lot of support from component vendors and from Microsoft, and the presentations have always been VERY educational and practical.

I'm sure one of these folks can help you find a group in your area: http://tech-advisors.msdn.microsoft.com/en-us

There are also Microsoft events regularly in major metro areas, as well as online.


Jump in on these channels, and you will actually probably feel a little overwhelmed at first with the information thrown at you.

Then, after all of that, my simple process that I learned through:

  1. Find a problem.
  2. Create a solution for the problem.
  3. Try to break your solution.
  4. Repeat.
  5. Let your friends try to break your solutions. (They'll surprise you.)

Also, I see you're already a member of StackOverflow. Absolutely fantastic amounts of information, there. I'd only recommend that you search the archives before posting questions. I've used it for years, and rarely have I had a problem that I found "First." You're going to find that most things you run into are asked and answered three times over there.

Good Luck!

{Edit} One more thought: A lot of component vendors have free versions of their products for personal use. SyncFusion comes to mind. You'll be a while before you're needing third-party components, though. Learn the core of the Microsoft world, first.

  • Thank you for your response an the effort you put into it for me.
    – Joseph
    May 11, 2015 at 7:21

Working on open source projects requires absolutely no qualifications. Provided you can do some programming, and make a Pull-Request (Git), that's all you need.

And let's face it, doing work on some open source projects is a great way to build your résumé without having any experience as a hired engineer.

I assume you have a LinkedIn profile already. But your Git profile is more often than not even more attractive if you've been actively contributing to projects. It will show that you've made meaningful contributions to codebases, and serve as a portfolio of your accomplishments.

Getting started with contributing:

First off, you're going to need a profile on https://github.com/

By using the Explore link, you can start finding projects by field.

It's going to take some time, but in order to make a meaningful contribution, you should use a program, get to know it, and see if you can think of a way to improve it.

Making a pull request:

When you've stumbled upon an avenue for contribution, you make what's called a Pull Request (PR), whereby you clone a project (i.e. download all source code. There is no "request" here per se, because it's open source. Anyone can clone the code), make a branch, commit code to that branch, then you request a merge into the master branch. The code will then be reviewed by the owner(s) of the project, who will either accept or reject your changes. Don't be discouraged by rejections; it happens. Either your changes pose an undesired change, or they simply disagree with how it was implemented. More often than not, the owners are nice people, and will let you know what's up, so that you can eventually make the contribution after all.

For more info on making a PR, see here.

Own notes:

Personally, I've only made Pull Requests to private repositories for friends, but I have experienced someone making a Pull Request to one of my own public repositories, which was nice.

Create your own repositories:

If you're having a hard time finding ways to contribute, it's safe to chalk it up to lack of experience. But getting experience can be simple! Create your own project!

It can be absolutely anything. Think of a program or a website you'd like to make. It can be something as simple as a website where people can convert between different units of measurement. Yes, it already exists, but there is still experience to be gained here. And as you work on it, you can make it better and better, until you've made one of the best unit converters out there. And I promise you this; as you do this work, you will come up with more interesting ideas, and be in a great spot, because now, you know how to get started with a project!

There are plenty of guides out there on how to start a project using Git, and getting to know Git is something you put on your CV, because it is arguably the most prominent version control system out there, used by everything from one-man projects, to huge enterprise systems. It's gold!

  • I appreciate you giving me some feedback. I have dabbled in C++ , Java , and JavaScript but am only at a very entry level phase. I don't really know what I would be able to contribute. I figured if I did the cert it would give me at least a baseline to start working on OS projects. Does one need to be invited or do you just go in and start contributing
    – Joseph
    May 11, 2015 at 7:24
  • @Joseph Find a bug in one of the programs you use, and then fix it. If your fix works, doesn't cause regression and follows the code standards of the project then it should be accepted by any sane project. Having a cert doesn't make your bugfix more/less valid.
    – Brandin
    May 11, 2015 at 7:41
  • @Joseph - No invitation needed. Most OS projects welcome help from anyone who can, and want to contribute. I made a substantial edit to my post, just to clarify.
    – Alec
    May 11, 2015 at 7:42
  • I'd like to add: besides Git(hub), get to know SVN and TFS. If you know how to work with those, you're set for a long time. In my experience, when my projectgroup didn't use Git, we used SVN. In enterprise environments I have always used TFS. May 11, 2015 at 7:57
  • 1
    Keep in mind Github is not needed to use Git. Github is just a hosting service. In fact I think one of the Git software's main strengths is that it's so easy to push your repository to anywhere, whether it be a remote hosting service such as Github or a plain directory on your network share.
    – Brandin
    May 11, 2015 at 11:57

Not the answer you're looking for? Browse other questions tagged .