Category: Tips

Getting Started

“I want to become a web/mobile developer/designer. What can I do to get started?”

There are a variety of web and mobile bootcamps across the country. For just $5,200, Big Nerd Ranch promises to get you writing iOS applications in just seven days. It looks like you should probably arrive with some programming experience, but they’ll train you in the essentials in a week. Not sure you’re ready to learn mobile development in less than 168 hours (I assume they let you sleep at the ranch)?

Coding Dojo will give you 14 weeks to learn three separate development stacks – you might choose to learn backend development with Python, front-end JavaScript development, and iOS mobile development. That would allow you a lot of flexibility to contribute in several areas within a company. Tuition for the 14-week program ranges from roughly $10,000 to $14,000 depending on the location. They also offer career support to help you find that first job – “94% of our students who complete our career services program find a job within 180 days of graduation.”

I do not have any experience with coding bootcamps. They do seem to acknowledge that there is a lot of work involved, and sites like Coding Dojo do indicate that career development is a process – they don’t seem to believe miracles happen in 14 weeks. But what can someone do if they want to switch careers and become a software developer, but they’re not ready to go back to college for a 4-year Computer Science degree?

Here are a few suggestions…

Start Learning

This one’s rather obvious, but it involves more than learning to code. You want to gather some general information about the kind of work you think you might want to pursue. If you are more interested in the visual design aspects of web development, you will want to learn HTML and CSS. You can help establish the appearance and use interaction for a website without needing all the skills associated with web development. However, if you want to build web applications, there’s some programming involved – likely some JavaScript, Python, or Ruby. In either case, there’s an important step that involves learning something about yourself as well.

Web development is not for everyone. It requires some ability to take a problem and break it down into smaller parts. To be successful, you need to see where one problem is like another problem and might share the same solution. You need to think about problems in abstract ways. You need to reason through the logical steps involved in a task to bring it to completion. Now, no one is good at all of these things right away, but some people have no interest in becoming good at these things.

You can get a quick feel for your interest in coding by finding a brief tutorial online. The Mozilla Developer Network provides some very simple HTML, CSS and JavaScript tutorials. A lot of people are fine with HTML and CSS, but find that the jump into programming with JavaScript requires another level of thinking and commitment.

If you’re interested in mobile development, Apple and Google provide resources for getting started that will include some basic tutorials. If it’s your first exposure to programming, you might need to find some basic “learn to program” tutorials first. Sites like Coursera can be helpful here – just make sure you can find something that’s geared toward someone with no prior programming knowledge.

Once you’ve determined that you want to move forward, and you have some feel for what you want to learn, you can look for more advanced tutorials to help you get a firm grasp on your subject. Some people are fully capable of doing this on their own. Others benefit from the structure provided by courses at a local community college, development bootcamp, or online training (such as Lynda.com, Pluralsight, or CodeSchool). If you can find someone to guide you through the learning process and answer questions, you’ll definitely benefit from their knowledge. If it’s just you and the internet, you can succeed, but be prepared to learn some things incorrectly along the way. (The internet is full of information – both good and bad.)

Start Practicing

As soon as you feel like you have enough knowledge to do something, start putting that knowledge to practice. Build things and throw them away. If you see something interesting on the internet or in a mobile app, figure out how to mimic it. At some point, you will need to break away from copying the steps of a tutorial to actually putting some things together on your own. This is where you can determine how much you’ve really learned. You will undoubtedly struggle to copy a lot of the things you see, but think through how you can break it down into smaller ideas that you can copy.

For the aspiring web developer, if you’re short on ideas to use for practice, visit a site like CodePen and see what other people have built. Find something that looks like it would be at your level and try to recreate it. If you get stuck, you can see how it was initially done and learn the skill of understanding someone else’s code – and this is a crucial skill to learn.

If you’re interested in mobile development, find the simplest app in the App Store or Google Play Store and create your own version of it. You don’t need to publish it, but you will learn a lot during the process of trying to duplicate it.

Of course, if you already have ideas for something you want to build, start implementing them. If you’re trying to build something you want to use yourself, you’ll be much more motivated to get it working.

Start Networking

Meet as many other people as you can in the area of development you’re pursuing. Meetup may be a helpful site to find gatherings in your area where you can learn new ideas and network with other developers. Some meetups may even provide opportunities to work with others on community-based projects for local non-profits.

Local chapters of Code for America, such as Code for KC offer opportunities to work with other volunteers who are building tools to make local government better. Attend a meeting, introduce yourself to someone, and share your career goals. You may be able to find a group of people who are willing to help you learn while also gaining experience that you can share with prospective employers in the future. I would suggest you only work on a project where there’s some genuine interest. That interest will likely go a long way if you still needs a lot of help from other team members to complete a task.

Start Publishing

At some point you’re going to want to find a job, and you’re employer is going to want to know what you’ve done. If all you can do is tell how you’ve taken some classes or attended a bootcamp, you’re going to have a very hard up-hill battle. If you can link to web pages you built or mobile apps you’ve published, an employer can have some confidence your skills are legitimate, even if they are still in the early stages of their development.

One caution here. If you’re claiming that you were responsible for something, you should be able to explain how you built it. You should expect questions – lots of questions – about any work you’ve done. Why did you choose A over B? How does that animation work? Did you run into any problems building that?

Study, Study, Study

When it’s eventually time to go through the interview process, be extremely well prepared. Expect someone to ask you to write some code to do something as part of the interview. Expect them to show you code and ask you what it does. If they don’t drill you heavily on your knowledge, having the information ready will allow you to give much better answers than you would otherwise give.

If you’re not sure where to begin, go to Google or Bing and search for interview questions (web, iOS, Android). Make sure you can answer anything you see. If you know someone already in the kind of position you’d like to have, see what you can learn from them about a typical interview process.

Once you’ve identified a company, check Glassdoor’s interview postings for that company and similar companies. You may not receive the same questions, but you will get an idea of what to expect. If you can’t answer questions you see they are asking, you may want to hold off on trying to get an interview until you’re better prepared.

Make any interview a learning experience. You want to convince a company you’re ready to work, but you also want to come away from the interview experience knowing how you can improve for the next one. If you don’t take notes during the interview, write down everything you can immediately afterward (i.e. when you get back to your car). Make sure you’re ready to answer any of the interviewers questions the next time around.

Whether your self-taught or you’ve been bootcamped or you fall somewhere in between, don’t expect the process of becoming a web/mobile developer to be easy. Assume your three months of bootcamp training is going up against a developer with a year of work experience and be prepared to work hard enough to overcome that gap.

Related Articles:

How to land a top-notch tech internship — and a tech job — while you’re still in school
I spent 3 months applying to jobs after a coding bootcamp. Here’s what I learned.

How can I get Pretty Permalinks on a Windows web server?

If you happen to be hosting your WordPress blog on a Windows server, you may have run into the issue of trying to remove the index.php section from your URLs. I was just about to attempt writing an HttpHandler to perform the rewrites when I stumbled upon the following article.

http://learn.iis.net/page.aspx/466/enabling-pretty-permalinks-in-wordpress/

It just so happens that if you’re host is running IIS 7.0, removing those URLs is relatively simple using the built-in URL Rewrite functionality of IIS. The linked article provides a very nice summary of the steps you’ll need to take, but  it basically amounts to adding the following <rewrite> section to the <system.webServer> element of your site’s web.config file.

<rewrite>
  <rules>
    <rule name="Main Rule" stopProcessing="true">
      <match url=".*" />
      <conditions logicalGrouping="MatchAll">
        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
      </conditions>
      <action type="Rewrite" url="index.php" />
    </rule>
  </rules>
</rewrite>

Since it took some time for me to locate the article in a Google search, I thought I’d post a link here to help document the solution.