How To Get Started in Software Development
Recently I was invited by LinkedIn to participate in their new Career Advice hub as an advisor. My first reaction was, man, that would've been really great to have when I was first getting started! Heck, it would be great to have now, 12 years later. So I decided it was the right thing to do to offer my help, should anyone be interested. A few weeks later, I got my first inquiry.
Let's call this person Bo. Bo reached out and asked if I...
"...could provide...a bit of advice on career advancement?"
That felt like a pretty open-ended question, so I gave him a equally broad response...
"What is your next major goal in your career? Once you know what that is (the effect), you can work backwards from there and define the actions you need to take to get there (the causes)."
Bo responded that he would like to either get in to project management or software development. Since I haven't ever pursued a career in project management, I knew I would be less than helpful to him there, but I did have some perspectives on what actions led to positive results for me along the way as a software developer. So, I thought I'd share them publicly here.
Pick A Platform
I know there are varying schools of thought here. For me, specializing in a platform has helped me focus on getting better at it than I would have if I was trying to gain proficiency on multiple platforms all at once. I chose iOS (back when it was iPhone OS), and have been 99% focused on that platform ever since. But wait, before you go jumping in to making apps on a platform, you really should...
Master the Language(s) First
My first foray into software development was Ruby on Rails. I jumped right in to RoR, trusting the opening lines of books and blogs that I could become a (pro) RoR developer without learning Ruby first. I could pick up just enough Ruby along the way. That didn't work for me. But when I then decided to pursue iPhone OS app development, I was committed to learning the languages first (C and then Objective-C), then the base framework (Foundation), and finally the frameworks used to build apps (Cocoa Touch). I spent about a year (nights and weekends) on C and Objective-C. I read several books and countless tutorials, and later I took classes at About Objects. It was about this time that I also started to...
Get Involved in the Community
Actually, I started going to WWDC in 2006, when I was a Mac consultant and budding web developer. But when I made the decision a couple years later to pursue developing apps for iPhone, I started attending several conferences, also including 360|iDev, CocoaConf, and others. I met Ray Wenderlich at WWDC several years ago, when I invited him and about 20 other industry leaders out to lunch. It was a great experience and it has led to several amazing opportunities to this day. Which brings me to my next point...
Share Your Expertise
There are several ways to share what you've learned and gained expertise with using. You can write individual tutorials or complete books, record video tutorials or whole courses. For me, it started when a new release of a book on an important subject was impacted by changes to the underlying technology right before it was published, and the book was not updated to reflect these changes. I got in touch with the publisher, who eventually offered me an opportunity to become a technical reviewer for them. I loved doing tech reviews, because it meant I not only got to help ensure the book would meet the needs of its readers (after all, I was the target audience), but I also got early access to the new material. The day Swift was announced, that publisher asked me to write a book on Swift. I did, and have since co-authored another book, and authored several tutorials and video courses (here, here, here, and here. Teaching is also one of the best ways to deeply learn something, because it challenges you to explore every possible capability of a technology. Which leads me to my last point...
Never Stop Learning
I gave a talk to elementary school students and their parents a couple weeks ago, and this was the main point I made throughout my presentation. Be it the three Rs (Reading, wRiting, and aRithmetic), formal higher education, and/or independent courses, classes, or books, there is always something more to learn. So never stop learning. In the world of iOS app development, it's literally an annual cycle. Every year at Apple's Worldwide Developer Conference (WWDC), they deliver thousands of new and changed APIs, introduce brand-new frameworks, and usher in the next evolution of best-practices to build apps that continue to surprise and delight ever more discerning users.
I think that about sums up my thoughts on this topic, for now. Thanks for reading. If you're looking to get into software development, I hope you found something useful here, and good luck!
#SoftwareDevelopment #SoftwareEngineering #programming #coding #GettingStarted #CareerAdvice #NeverStopLearning