@markmcgrath Thanks very much for your question!
You are not alone. Many people do a field of study in University/College, only to have a change of heart due to a variety of circumstances. My major is actually in Human Biology, because I had aspirations to pursue medicine as a career. Due to personal circumstances out of my control, this simply was not possible. Now, I happened to be minoring in Computer Science, which is how I got my introduction to computer programming, but even still, I learned Java in school. However, at the time, the Internet was all the rage, and I always was a technophile. Seeing all the new, and interesting things that people could now do using the Internet, it was then did I realize that this was the field I wanted to be in. Fast forward several years later, I was struggling to find work as a Java developer after the financial recession, since the market was saturated with unemployed developers like myself. It was then that friends of mine had advised me that I should consider building for the iPhone (there was no iPad at the time), since people tended to gravitate towards Apple products like the iPod. Eventually, I gave in and realized that there might be an opportunity here since people could no longer demand 5 years of experience from me, since the iPhone had only been out for only two.
So now the million dollar question is, can someone like yourself find work in a market where there are so many mobile developers already? The answer is yes. Why? Because the market is growing, and there is not enough supply to fill the demand. Moreover, despite the fact that your degree is not in CS, it’s STILL an ENGINEERING degree! Your educational background has given you the mental training to comprehend something like software development whether you realize it or not. Many people have said to me that they feel intimidated working along side developers who have gone to elite schools like MIT or their equivalent. My response to them is very simple:
The fact of the matter is, I went to the Harvard of Canada (University of Toronto) where I graduated with my B.Sc. degree in Human Biology, and now I work as an iOS developer. So first of all, I didn’t go to a mediocre school by any means, and nor did I pursue a mediocre field of study. I then go one step further and say, "I can do software development like an MIT/Stanford/CalTech grad, but can any of those graduates do medical research like myself? FYI, I have two research papers that I published in scientific journals while I was an undergraduate student, so by no means do I feel my education was a waste. So to answer your question, I see myself SUPERIOR by virtue of my diverse background. Plain and simple. Should a Harvard graduate be intimidated by an MIT graduate? I don’t think so.
Moreover, in this day and age, there is a TREMENDOUS amount of QUALITY educational materials that are available to help people get started with learning mobile development. Truth be told, much better resources than there were even just a year ago. This very site, has evolved tremendously for as long as I can remember. Before it was just beginner articles, then it was multipart tutorials, and then after that video tutorials, and now they are taking on Android development. The quality, and quantity are increasing by leaps and bounds, so now it has become much easier to find quality materials to get up to speed. Trust me when I say this, I only wish these resources were available when I first got started as an iOS dev. Trust me.
So now to answer the million dollar question you posed:
“I’m just wondering if learning programming on my own can find me work in the future without any sort of computer science degree or certificate? And if so, how does that happen?”
The answer is this:
You’ll have to roll up sleeves and work hard to learn your craft, but the only way to demonstrate you know ANYTHING, is by showing your work. This goes for CS graduates as well, so relax To give you an analogy, I see a degree the equivalent of being eligible for the draft in a sport like hockey, or basketball. Sure, you may be drafted in the first round, but that still doesn’t guarantee you a successful career as a professional. The only way to get that is to PROVE yourself at the PROFESSIONAL level. There are countless examples of highly touted prospects in college who were colossal busts as pros. How do you now prove yourself to be a successful PROFESSIONAL programmer? By building quality apps. This is what I did. When I first decided to go into iOS development, I first looked at job ads for iOS developers, and one thing kept jumping out at me in these ads: “must have an app in the app store” Over and over again, I saw the same message. I had my marching orders. Build an app, put it in the app store, and THEN apply for work, but NOT before. That’s precisely what I did. I didn’t overwhelm myself with something insanely difficult like building my own amazon.com, but nothing trivial either like “Hello World”. Once I got my app into the app store and put it on my resume, interviews started coming in. So I would suggest that you look at any area of interest that you have, and see how if possible, you can leverage mobile technology to make an impact. This shows many things:
- Genuine concern for your community. That’s a good thing.
- A possibility to carve a niche for yourself in an under serviced field. There are countless Instagram knock-offs out there, so please don’t reinvent the wheel. There is tremendous opportunities in areas that are not “sexy” or “exciting” to many people, and yet you could discover there is a huge market.
- Demonstrating real passion for your work, and not treating it as a 9to5. Trust me when I say this, being a software developer is something you ARE, NOT something you DO. There is a difference. It’s both an art, and a skill. The best analogy to software development is like being a chef. A chef builds a product (a meal), works on a team (the staff), has tools (knives), and in a timely fashion, needs to serve a customer. Yes, some chefs go to cooking school, and some work their way up from the bottom, by simply working hard, and having passion. That in my opinion is the most important quality to have: PASSION. If you want to do, badly, then go for it.
So how should you go about becoming an iOS developer?
- Get a good grounding in the Swift language. This book would be a good place to start.
- Go through a good book, cover to cover in iOS development like this one which we offer on our site. Maybe go through this book more than once.
- Give yourself a project to do, and put it in the app store. Once you put it in the app store, you can confidently say, “I’m an iOS developer”, and point to something as evidence. You can’t call yourself a chef if you’ve never cooked a meal, or call yourself a painter, and never painted a picture. Having an app in the app store will help showcase your work. Trust me when I say this, a quality app that you’ve personally built, and submitted to the app store will trump any degree.
I hope this helps!
All the best!