Getting a Coding Job For Dummies. Nikhil Abraham

Чтение книги онлайн.

Читать онлайн книгу Getting a Coding Job For Dummies - Nikhil Abraham страница 5

Getting a Coding Job For Dummies - Nikhil Abraham For Dummies

Скачать книгу

or talk. When I screen candidates, I’m usually looking for what they’ve accomplished, and whether they have actually built something meaningful or just maintained a product. Most interview processes start with a phone screen and then on-site interviews, but I try to personalize the interview as much as possible for the candidate. If you have less coding experience, you might be asked about something you just built, while more experienced candidates will jump into a hard problem the company is currently solving.

      ✔ What do you screen for?

      At the resume stage, I’m always looking for something interesting that will excite the team and make people want to have a conversation with the candidate. In the actual interview, I’d say 70 percent of the evaluation is technical ability, and the rest of the evaluation is a combination of soft skills and cultural contribution. I used to look for a specific candidate profile, usually a computer science degree and previous tech experience, but I’ve become more open to people without college degrees, career switchers, and people who have taught themselves to code. I have recruited a few self-taught programmers, and they have gone on to have incredibly successful careers within companies.

      ✔ What is a mistake everyone makes in the recruiting process?

      Have a story both about what you have done previously and what you want to do at the company where you are now interviewing. Sometimes candidates don’t have much to say about a topic they should know a lot about – themselves! Also, have a product or a feature you want to work on if you’re given an offer. It can be hard to advocate for candidates who don’t express any preferences.

Freelancing and contract jobs

      Companies of all sizes hire freelancers to do discrete projects that are not overly complex and have a definite end date. For example, freelancers often build a website with a few defined pages, create mobile apps, or scrape and store data from websites into databases. Getting some of the initial work performed by a freelancer helps a company see how much time and money a project will cost and whether there is a need to hire a full-time employee.

      Contract work also provides freelancers with some valuable benefits. Even for full-time coders, doing some contract work is a great way to build up skills in a new programming language or framework. Also, because coding work can be done from anywhere, freelancers have a good deal of flexibility and don’t necessarily have to sit behind a desk in an office. For example, some freelancers travel often for pleasure, and can be found working in cities such as Boston one month and Bali the next month. Finally, some coders freelance full-time, and build their business by doing work for existing clients and pitching new work to client referrals.

One issue with freelancing is that you are always looking for the next job. A few websites, such as Freelancer (www.freelancer.com) and Upwork (www.upwork.com), formerly odesk.com, help provide freelancers with steady work by creating communities that connect employers and freelancers. See Figure 1-5.

       Figure 1-5: Upwork helps freelancers find and bid on contract coding jobs.

      These sites create online reputations for both freelancers and companies, which helps each side feel more confident that the work will be completed and the agreed upon amount will be paid.

      Chapter 2

      Exploring Coding Career Paths

       In This Chapter

      ▶ Improving your existing job

      ▶ Exploring entry-level full-time coding roles

      ▶ Understanding skills and tasks in various coding roles

      We shall not cease from exploration, and the end of all our exploring will be to arrive where we started and know the place for the first time.

– T.S. Elliot

      For many people, the words “coding career” evoke an image of a person sitting in a dimly lit room typing incomprehensible commands into a computer. The stereotype has persisted for decades – just watch actors such as Matthew Broderick in War Games (1983), Keanu Reeves in The Matrix (1999), or Jesse Eisenberg in The Social Network (2010). Fortunately, these movies are not accurate representations of reality. Just like a career in medicine can lead to psychiatry, gynecology, or surgery, a career in coding can lead to an equally broad range of options.

      In this chapter, you see how coding can augment your existing job across a mix of functions, and you explore increasingly popular careers based primarily on coding.

      Augmenting Your Existing Job

      Many people find coding opportunities in their existing job. It usually starts innocently enough, and with something small. For example, you may need a change made to the text on the company’s website, but the person who would normally do that is unavailable before your deadline. If you knew how to alter the website’s code, you could perform your job faster or more easily. This section explores how coding might augment your existing job.

Choosing a career path

      Coding career paths are extremely varied. For some people, the path starts with using code to more efficiently perform an existing job. For others, coding is a way to transition to a new career. As varied as the career path is, so too are the types of companies that need coders.

      As more people carry Internet-capable mobile phones, businesses of every type are turning to coders to reach customers and to optimize existing operations. No business is immune. For example, FarmLogs is a company that collects data from farm equipment to help farmers increase crop yields and forecast profits. FarmLogs needs coders to build the software that collects and analyzes data, and farmers with large operations may need coders to customize the software.

      To build or customize software, you’ll need to learn new skills. Surprisingly, the time required to learn and start coding can range from an afternoon of lessons to a ten-week crash course to more time-intensive options, such as a four-year undergraduate degree in computer science.

Creative design

      Professionals in creative design include those who

      ✔ Shape how messages are delivered to clients

      ✔ Create print media such as brochures and catalogs

      ✔ Design for digital media such as websites and mobile applications

      Traditionally, digital designers, also known as visual designers, created mockups, static illustrations detailing layout, images, and interactions, and then sent these mockups to developers who would create the web or mobile product. This process worked reasonably well for everyday projects, but feedback loops started becoming longer as mockups became more complex. For example, a designer would create multiple mockups of a website, and then the developer would implement them to create working prototypes, after which the winning mockup would be selected. As another example, the rise of mobile devices has led to literally thousands of screen variations between mobile phones and tablets created by Apple, Samsung, and others. Project timelines increased because designers had to create five or more mockups to cover the most popular devices and screen sizes.

      As a designer, one way to speed up this process is to learn just enough code to create working prototypes of the initial mockups that are responsive, which means one prototype renders on both desktop and mobile devices. Then project managers, developers, and clients can

Скачать книгу