Beruflich Dokumente
Kultur Dokumente
Website http://loudprogrammer.net/
Table of Contents
Copyright Notice .................................................................................................. i
Introduction.......................................................................................................... v
How I Became a $50/Hour Software Developer ............................................. vi
Does Earning $50/Hour Make You a Great Software Developer? .............. viii
How to Read This Book ...................................................................................... ix
STEP 1: Learn To Code ....................................................................................... 1
Importance of learning .......................................................................................................................... 1
How to Learn .......................................................................................................................................... 1
i. College.......................................................................................................................................... 2
Teach yourself ..................................................................................................................................... 3
i. Take an online course ................................................................................................................ 4
ii. Books ............................................................................................................................................ 4
iii. BootCamps .................................................................................................................................. 6
Learning tips ........................................................................................................................................... 6
Conclusion ......................................................................................................... 40
About Geoffrey .................................................................................................. 41
Resources ........................................................................................................... 42
Introduction
When youre just getting started as a junior developer, it seems like its
impossible to break into the market.
In this book I give you a step by step guide on how you can go from a
complete beginner to landing your first software developer job with a
reputable company in 7 simple steps.
I also highlight the common mistakes I made, that most junior and
intermediate developers make that serve to lock you out of the jobs you
actually need, making advancing in your career a pain.
I hope this book helps you set a clear road-map for landing a software
developer job, achieve success in your software career and earn $50/hour
doing what you love.
Follow me on social media to keep in touch and share a few more tips.
- Geoffrey Bans,
Twitter @geoffreybans
2017 Geoffrey Bans www.loudprogrammer.net Page v
How to Become a $50/Hour Software Developer
Earlier on I had been toying around with desktop computers and writing
some crappy HTML web pages using framesets.
After learning the basics in code for a few months I came up with some
simple project ideas and built on them using PHP. One was a mobile
payment checkout system. I was able to sell the code to a few businesses in
my local town and this got me really excited.
With no one to show me or offer me any guidance and help, I often got
stuck with code for days, sometimes weeks. I had to figure out everything
by myself either by reading more books, researching the internet or
sometimes simply taking a nap and magically waking up with a solution!
I could also host HTML user interfaces that I could show to potential clients
who I was looking to build websites and web applications for.
Initially my rates were pretty low. I often worked for $15 per hour or even
less. But the excitement that someone was willing to pay me even a penny
to write code was overwhelming.
I then defined my rates and became very choosy with clients. I decided to
only work with those who were willing to give me real value for my time
and appreciated my experience.
After taking this bold move of defining my hourly rates I lost a great deal
of clients. My client base drastically reduced to only a handful but my
rates jumped to the roof!
This report outlines the lessons learned and the process I implemented to
successfully plan, create and launch my software developer career.
In this guide, I aim to guide you through the process that will make you a
full time web or mobile application developer faster and without much
pain.
I outline a more fun way to learn to code and finally land a well-paying gig
that will give you the chance to do what you love and improve other
peoples lives.
A word of warning! Just being passionate, talented and loving what you
do will not make you a great software developer.
You must put in the hours of hard work consistently if you want real
results. If you can get this point right through, you can make your way up to
a $50/hour software developer in less than 6 months.
Geoffrey Bans.
Loudprogrammer.net
However, this is a good rate to benchmark with. Often you will earn much
less when you are getting started but having a target of getting to $50 per
hour will motivate you to do only the things that will make you a great
developer.
Becoming a great software developer to the point that companies are dying
to hire you and pay the rates you ask requires a great deal of hard work,
consistency, time as well as networking with other developers and keeping
your ears out for the right opportunities at the right time.
Most people who try to become software developers never really reach the
point where they earn $50 per hour. The typical reason why that is, is
because they give up before they even have a chance. Sad but true.
No company in their right mind would be willing to pay $50 every hour,
160 hours a month all year round to a mediocre programmer. So being able
to earn this demonstrates the great value that you add to the company.
So, YES, use this as a benchmark, but dont let it limit you.
NOTE: You will NEVER be able to monetize every single hour you spend
programming.
90% of the code I have every written were never paid for by anyone. These
were in the form of open source contributions, failed startups, difficult
clients, coding help for friends and my own open source projects that I
started, including the Gliver framework.
I will also send you additional materials that are more specific and up to
date, with more actionable tips to supplement the contents of this book on a
weekly basis.
I suggest that you read the whole eBook in full before starting anything.
Doing it this way will help you understand how the method works and how
the different parts complement each other.
If you skip any of the steps, it won't work as well for you. You need to follow
all of the steps for greater success.
Sometimes you will achieve success before implementing all the steps.
But reading the whole book before you start anything will enable
you to understand how it all fits into a strategy.
Check the resources section for a complete list of the links to all the
materials that I mention in this book for learning, jobs, networking and
personal productivity.
This is what you will be hired to do. So you should be able to do it, and do it
well.
The strategies outlined in this book will help you get a chance at a company
as a developer or start your own consulting business. It is an opportunity to
work. So you must be able to take on the responsibilities and deliver.
Importance of learning
You will know how to get the job done when you get a chance
You will gain the confidence that is key when looking for a job
It is a badge of honor and increases your chances of acceptance
How to Learn
In this age, and with the internet, there is no shortage of learning materials
that can quickly get you the skills you exactly need locked in.
But if you dont filter the material and be specific about what exactly you
want to learn, it can turn into information overload.
Information overload leads to a situation where you are forever looking for
the right materials to use to learn but never taking any action. Even with
the best material in your hands, if you dont take any action they
will do you no good at all.
Learning to code, if you are specific as to what exactly you want to learn can
be a short and fun process.
You could get up and running coding apps in just 6 weeks or less depending
on how much time per day you allocate to your studies.
There are various ways you could learn to code and get really good at it.
i. College
You can decide to go the traditional way of taking a college degree say in
Computer Science then learn algorithms and some coding skills.
There is the risk of feeling entitled in the job market when you have a
college degree. In the job market a college degree is just an indication that
you can learn.
It will open more doors for you, but remember you still have to walk right
in there and work. You still have to deliver on the job or you might be
labeled as incompetent.
Often than not, what you learn in the classroom is not what you
actually need to get the job done. So you will still have to put effort to
learn actual software development practices in the real world out of college.
From my experience it doesnt really matter much where you take your
degree in computer science from. The real skills that you need in order to
deliver on the job will be learnt when you are outside the classroom.
Remember if you go the university way, you will have to take 4 years
studying and then come and spend a year or two in internships before you
can become great at your job.
If you are already in college, by all means go ahead and complete your
studies. It will do you great good. It will open more doors for you and your
job search will be much easier.
The connections you form at college will prove really useful when you are
out of school. There is more on networking later on.
But if you are still contemplating joining college then check out my next
point.
Teach yourself
Yes, teach yourself.
This is the most common, easiest, shortest and probably the most fun way
to get to learn how to code.
When you teach yourself how to code, you are able to filter out the noise
and only focus on the material and content that you really need to
get the task at hand.
It really saves you the time, energy and resources youd otherwise have to
spend if you went the traditional way of a college degree.
If you teach yourself how to code, you probably wont spend 4 years
learning to be able to be good at it. Just a year or 2 would do.
This is despite the fact that I have been coding for years now.
If everything goes well you will be able to get into a senior position after 4
years of coding, while a college graduate will only be able to secure a junior
position at that time.
Video courses that are well done are a great way to get started learning.
Its much better if the course instructor is within reach, because you will be
able to reach out to them when you are stuck and need some help.
There are great online platforms for learning where you could take a
premium or free course and get started learning.
Check the resources section below for a complete list of the most popular
online platforms for learning programming.
On these platforms you will find good courses that will teach you Web
development, Android, iOS, Java, Game Development, Desktop
applications, Data Analysis, technically any skill you need to learn.
Besides, some of these online courses have instructors with great teaching
approaches and are available to assist you when you are stuck.
ii. Books
Books are the traditional and proven approach to learning.
However, with technology and particularly coding, you will need to pay
more attention to the year of publication of the book to ascertain relevance.
Old commands easily get deprecated with every new release version of a
programming language so if you spend your time studying with an
outdated book you are in for a bumpy ride.
I personally made this mistake when I was starting out learning PHP.
I studied PHP 4.0 which already had a lot of functions deprecated by the
time I was leaning it.
The code I then wrote could not run on the server. It was throwing errors at
every attempt to execute.
Even with the best video courses online, you still will have to pick a few
relevant books by the side to act as your reference.
Most courses are targeted at achieving a particular goal and will not take
time to delve into the details which you need to set a strong foundation.
In this case therefore a book comes in handy when say you want to check
out all the functions related to string manipulations in a language.
You will face a lot of frustration trying to learn from a book that is outdated
because the code most likely will not run on the latest server software.
One other important thing that will help you settle on the right book is to
check on the programming language version that the book is teaching.
If say you want to learn PHP. You grab a book either digital or paperback.
Check the PHP version it teaches.
Then go to the official PHP website to check out the latest version of PHP in
the market. If the book teaches PHP 5.0 and the latest version is
PHP 7.2 then by all means leave that book alone.
Spend more time looking for a more up to date book. It will save you many
a pain.
Even with the availability of video courses and tutorials, books can give you
a very strong foundation, especially if you have limited resources.
I learnt my first three programming languages C, C++ and then PHP purely
from books. It took me longer but gave me a strong foundation that enabled
me to build the Gliver MVC framework.
Check the resources section below for the best books I used to learn to code.
iii. BootCamps
BootCamps, CodeCamps or Hackathons are pretty much everywhere these
days.
They are a really fun and interactive way to learn if you can get a chance at
any of the, but HackaThons require you to have previous coding experience.
network,
make new friends &
find a coding buddy.
Finding a coding buddy is a great way to keep your coding adventures alive
as you will share ideas, enthusiasm and kick out the boredom.
Learning tips
Focus on learning only what you need to get your current task done
Stick to one learning resource till you have a proper grasp of the
basics
Focus on project based learning approach as opposed to general
learning
Have a study plan for your whole study period.
Start with the basics in HTML, CSS and JavaScript before you move
to server technologies like PHP, Python, C#, Java and Ruby.
Find a mentor, a coach or a codding buddy who you have direct
access to, to assist you when you are stuck.
STEP 2: Network
This should have been the first step if not for the fact that your network
wont benefit you much if you dont have the skills required for the job in
the first place.
So youd first set a clear action plan on how to acquire the skills needed for
a software developer job. Then you can get started on your networking
journey.
Some people have had success by just approaching a company that was
hiring and got a chance, but just an exceptional few.
You will need to have someone who can recommend you for a job, someone
who can back up your claims.
This will give you more credibility in the eyes of an employer than if you
only had the skills but lacked a recommendation.
Networking with buddies will form a great part of your career. There is no
time to stop.
Quite often job opportunities are not advertised to the public. If you have
the right connection at the right time, you might get alerted about an
opening at a startup so that you could go give it a shot.
Your job search with a company will be easier if you also know an insider:
someone who already works there who could put in a strong word for you in
order to back up your application.
This is not a race to pile 3000 business cards on your desk by the end of the
month.
You might want to broaden your reach by networking with anybody who
has any position at any company.
However, you should not just focus on networking as a tool for the purpose
of a getting a job.
It should be a way to
make friends,
share ideas and
make your professional life fun.
You might not get a job directly from your network but your network will
play a great role in shaping your profession as a software developer.
Just after you are able to communicate with and understand customer
needs, will you be able to design software with the end user in mind.
There are various ways through which you could network and broaden your
reach.
Tech Meetups
Using a website like Meetup.com will help you locate nearby relevant
Meetup groups in your locality.
Only join MeetUps where there is a great likelihood that you will
meet likeminded people.
Networking and building real connections takes effort and time so only
focus on making relevant connections that will be of real value in shaping
your career.
If you are a JavaScript developer and you dont intend to venture into back
end languages like Ruby or PHP anytime soon, then your best bet would be
to join a JavaScript-only Meetup group.
During these Meetups guys get to share best practices in that particular
technology.
Some programmer you might meet here knows a startup that is hiring or
someone who is in need of a programmer.
These online groups that you join are a great place to get to know
This will save you a great deal of frustration in trial and error and possibly
annoying the management at the company where you work.
Alumni groups
Your previous classmates will be a very easy place to start networking.
You shared much together so they wouldnt be hesitant to want to catch and
get to know what you are up to.
This will put you at a better position to know how resourceful they could be
to you in terms of taking your career to the next level.
When you seek to know how somebody is faring on first, it comes out as
genuine and the person might be open to sharing more with you.
Go ahead and let them know how you could be of help to them and how
they could be of help to you too in both your careers.
Tech forums
These are as well common depending on your locality.
You are as well likely to meet people of varying ages and interests.
There are chances you could meet that one right person from these forums.
Go with an open mind and be open to those you meet so that they
can open up as well and share more with.
Mostly you will find entrepreneurs who want to invest in the tech industry
frequent these forums as they want to learn more about the risks involved
as well as meet geeky developers.
Getting hooked up with the right individual from these forums could open
doors of opportunities for you.
Its a great way to keep in touch with buddies, check out their
recent developments and activities in a non-intrusive way.
When there is a connection you need to get in touch with, you could simply
log into your LinkedIn account and search for their profile, say based on
their first name, location or any criteria youd like to use and send them a
message.
You could simply drop them a message or share with them interesting
materials and opportunities.
This constant communication will keep you in their radar which might be
very useful when the right opportunity surfaces.
Check the resources section below for list of other great networking
platforms for software developers.
Networking tips
Focus on making connections that are relevant to your career
Focus on making a few quality connections other than piling a list of
business cards of people you might never talk to again
Dont be pushy, relationships need time to grow
Dont appear so needy when making connections, its a turn off
Place your projects at a place where others can see or access them.
Everyone will most likely be looking for reason not to hire you, instead of a
reason to hire you. But if you can demonstrate your competence you will
have a smoother ride.
At this time I dont suggest that you begin contributing to other peoples
projects on GitHub, just focus on using it for storing your own code.
Put your source code in a public repository, especially if you are a self-
taught developer.
Purchase a domain
You can put your code on GitHub but you also need a place where you can
run the code so that you can demonstrate the user interface.
The fact that someone can launch their browser and search you online and
find you will be a great plus.
Besides, GitHub pages only support static HTML pages of if you need to
run a demo of your PHP or Ruby on Rails applications, you need a real
server.
A personal website is great place to put all your previous work together,
including other peoples testimonials that we are about to talk about.
There are other alternatives that can enable you to display your past
projects but they all come with limitations. With your own personal
domain you are able to put a personal touch to your works of art.
When you are starting out as a developer, probably you dont have much of
a budget to blow in purchasing a domain and hosting space.
But remember you are fighting against a huge competition and you need
something to make you stand out.
Having a domain demonstrates that youve taken your career and what you
do seriously and are really seeking to get ahead.
You are a junior developer and probably nobody has trusted you yet with
any paid work that you could then include in your portfolio.
Check the resources section for a list of the most common freelance
websites for developers to get you started.
Nobody will hire you if you dont have any previous record of work or tasks
that you have successfully accomplished.
These are the projects that you will later include in your portfolio.
It is from your freelance clients that you will ask for recommendations.
Who will give any paid work to somebody without any previous experience?
Remember you will first need to tell them why they need a website, so a
quick brush up of your marketing skills will come in handy.
Dont worry about the pay for the start. These projects are a great
opportunity to learn. You are still green and you need something to get your
hands on in order to sharpen your skills.
A real project will speak strongly about your credibility and competence so
seek to take on these for the sole purpose of learning, growing and building
your portfolio of projects.
When you build something great, these friends will be able to connect
you to your next paying client and there you go: your career just
launched!
Dont take on so many projects for free, lest you be known as the guy who
works for free.
Remember to only take projects that will enable you build the
specific skills you need for the particular field you are seeking to
get into.
Some people also sometimes just want to have their coding adventures
secretive and personal by keeping family and friends out of their business.
They just prefer to go out there and give it a shot themselves. Thats great
either.
Getting onto your feet and approaching a local business in your town with a
view to building a project for them is a great way to start. In fact this way
you get real world experience firsthand.
Communication skills,
Time management skills and
Prioritizing.
You need these projects with your new clients to work out well, so you
should definitely put in your best foot forth.
As for real businesses, dont seek to work for free. It sets a bad
relationship between you and the prospective employer or client.
You could accept to work at a lower price but NOT for free.
You work for a lower price because you want to win them. You are a
beginner and your rates are not established yet due to your lack of
experience.
After a couple of successful projects under your belt you will be well able to
set some real price tag or hourly rate.
Once you get accepted for this project, do your best. Apply yourself to learn
as quickly as you possibly can and stick to deadlines and schedules.
You will need a great recommendation from this client later on. So prove
your competence now. Nobody wants to hire a mediocre engineer.
This could be some simple application that solves a particular problem that
people experience or automates some manual task that people perform
each day.
The key point is to build something that can actually be run and tested.
Something you can use as a starting point to learn and demonstrate your
skills.
If you a web developer and you already have a domain, then create a
subdomain under your main domain called projects where you can then
host your websites or applications, as you create them, and then show them
as samples to potential clients.
If you are into app development, web, mobile & desktop apps, you could
build an application that you can then sell to potential users in your locality
or in the internet, if you have the budget to invest in marketing.
The projects you contribute to have to be related to the field you are seeking
to get into.
As a beginner, get started with open source projects will prove a great
challenge because most projects require quite technical skills that you
might have yet developed.
Portfolio tips
Only take projects that are related to the field you seek to get into
Dont worry about low pay for the start, it will pay off in the long term
Start where you are most likely to win to make the process of building
a portfolio less frustrating
If possible, put your code on GitHub so that its available for review or
for easy of sharing it with others
When you are rejected at one place quickly move on to the next
Always have a user interface to demonstrate your projects
Its time for you to start thinking of looking for a real job, right?
Its time to collect those recommendations first. This is where your previous
clients really come in. So if you did a diligent job before, sit back relax the
recommendations will come after you.
Approach your previous clients who you worked with and see if they can
recommend you for a job.
You could call this a testimonial or so, they are the same thing.
Add your previous projects too on LinkedIn. It will be easier for someone to
counter check your recommendations against your projects to ascertain the
validity of your recommendations.
actually previously worked with are stronger than those from people who
you didnt work with yet.
You need to be sure that the person who is recommending you for
employment is willing and able to give you a good reference. Thats really
important because your references can be what makes the difference in
getting or not getting a job offer.
i. Timing
When a client says he is pleased with your work, use that opportunity to ask
for a recommendation.
Do this promptly after completing the work and after the client has
expressed satisfaction. If you wait too long, such as months or years later, a
client may not remember you and your work performance.
ii. Approach
Before requesting recommendations, review your past projects to
determine whom to contact.
If you havent spoken to a client in a long time, call him to re-connect with
him.
If necessary, remind him of the work you did for him and request a
recommendation.
Say why you need the recommendation and why you chose him. You might
say something like:
If you stayed in touch with the client, you may send him an email to request
the recommendation.
This saves your client from having to think of what to say. Avoid telling him
specifically what to say about you. Instead, focus on bullet points that serve
as a guide or starting point for what the letter should include.
If you make the mistake of having your reference to think hard about what
particularly to write, how to write it and whether its what you expect, you
might lose on the opportunity to get a reference.
Asking questions will give him a guideline on what to think and probably
write about.
This will ensure that the recommendation is actually useful and relevant to
the job opportunity you are pursuing.
If your client is more friendly then you might consider sending them a
written draft recommendation to consider. If they probably already liked
you much, they will not mind endorsing your draft word for word.
You could send a handwritten thank you note or offer incentives, such as a
credit or discount for each successful client you gain through him. Or you
might send him a small, thoughtful gift.
Phone or email the client periodically just to see how his business is doing.
Writing you a recommendation does not have to mean the end of your
communications for ever.
Your past client might as well directly recommend you for a job at a
company he knows that is hiring thereby even making your job search
easier.
Seek to use every chance to build more trust with you client.
Tips on recommendation
I prefer recommendations from previous clients to recommendation
from people you didnt even work with before
Ensure you have recommendations, or its a vote of no confidence
Include recommendations both on your personal website and on
LinkedIn
Only include 2 4 recommendations, more looks fishy
When you look up job vacancies, check out the requirements and
you realize they were exactly a great fit for you. And the company
looking to hire is your favorite brand.
Before you reach out for the job ad boards, start with your inner circle of
friends, connections and family when looking for a job.
This is the time the connections you made earlier really play a big role.
Your application will be considered more favorably than another that was
received from a random person browsing the internet that came across the
job ad in the internet and fired their resume.
Its great to go right away and blow your own trumpet. If anything you
know the skills you claim to have, dont you? But whats really great is to
have someone else sing your praises.
Recruiters always have two piles of resumes while recruiting for a position.
The huge pile of applications unsolicited from the internet, and the smaller
heap handed in person by someone they already know or worked with
before.
When you are checking for job openings from websites like Indeed.com and
Dice.com you should know that most of the jobs would require you to
relocate to the specific areas where the company is located.
Check the resources section below for a list of the most popular job boards
for programmers.
Once you narrow down your search to relevance by locality, check out the
job requirements to ascertain that you have the qualifications required and
are excited about the opportunity.
2017 Geoffrey Bans www.loudprogrammer.net Page 25
How to Become a $50/Hour Software Developer
Job searching is not only about checking if you are a good fit for the
company, you should in turn check if the company is a good fit for you.
Check out for online reviews about the company from sites like
Glassdoor.com and find out what other past employees are saying about the
company. You need to ascertain whether it is a company that values
employee input and respect.
It might not be an ideal company that you would like to work with, but its
better to walk into their doors when you already know very well what to
expect.
Dont get so much lost into finding the best company though because you
might end up with an empty list. Each company has their own share
setbacks and it takes a good employee to be able to bear with the situation.
The companies that might sound ideal for you have a higher
barrier to entry. It might not be easy to secure entry into a junior level
position without someone literally holding your hand for these companies.
After a couple of years of industry experience you will sell like hot cake.
Companies will come after you with job offers even before you ask. You will
be spoilt for choice then. You will only have to weigh options, which to
choose from.
But before that happens you have to plead your case so that you are
given a chance to build your credentials and become that developer that
every company would rob the bank to keep.
This will also help you when crafting your application to ensure you include
all the information that may be required and that you meet the bare
minimum of the requirements.
You dont have to be pushy, trying to make them get you the job!
You simply want to catch up with them, informing them about your
application and indicating that youd appreciate any help they could offer
you with regards to the application.
If not, you might ask them to submit your resume once again on your
behalf.
An employee probably already knows the company culture and would only
recommend someone they think would be a great fit for the company
culture.
Besides, when you are brought in by a third party, then the third party is to
be held accountable besides you when something goes wrong.
This tends to give the hiring manager more confidence when hiring than
when they have to hire a complete stranger with nobody to be responsible
for them.
2017 Geoffrey Bans www.loudprogrammer.net Page 27
How to Become a $50/Hour Software Developer
Just one of the employees walking in and asking the hiring team about your
particular resume draws much attention to your case. Your resume might
be fetched from the bottom of the heap and brought to the top for
consideration.
They want to find out whats special about you that your buddy had to come
in and ask them specifically about you.
You might not be the most brilliant developer, but at least your resume got
some attention now. 90% of applications are never seen by a human eye.
Follow up
After you send out applications to a number of companies, probably you are
not going to hear back from any of them. If you get a response it might be a
nicely formatted rejection email.
This is the time you want to check back with them to see if they really
received your application.
They definitely received your application but asking if they really received it
is a polite way to start a conversation. These accounts usually get
bombarded with email and its easy for your email to get lost in the noise,
the crowd.
Many a time a follow up email has evoked a positive response from the
company.
If they are this type then you most likely will receive a positive response
once you follow up.
Dont get offended if a company does not respond to your email even after a
follow up.
Dont put too much thought into it. Companies are always bombarded with
100s if not 1000s of applications for every single position they advertise so
they are usually overwhelmed.
This is a strong reason why I stress the importance of having the right
connections or network to help you in your job search.
It just boils down to reason. Would you trust an application from someone
from the internet who you didnt meet before or an application that was
submitted by someone you know in person?
Hiring is a tedious and costly process and companies are trying to play safe.
Dont lose hope. You only need to succeed once. You only need to nail
one job and your title changes from Unemployed to Software Developer.
After you have garnered some years of experience your portfolio or resume
will speak for itself and you will be able to find your way into other
companies without necessarily needing a helping hand.
But when you are just starting out, when you are a junior software
developer without industry experience, having the right connections will
play a great role in making your job search a success.
Application tips
Only apply for positions that are relevant to your level of experience.
A position that needs a senior simply needs that. Its not a typing
error.
Dont send out 100 applications on one afternoon. Consider at most 5
applications per day
Be consistent in your job search, check out for new opportunities
daily
Only apply at companies where you are ready & willing to work at
STEP 6: Interview
Youve now gone through all the difficult parts
Depending on the company and their protocol, you might have between 1 to
a couple more interviews before you finally got an offer.
The more the interviews there are, the more people drop off on the way.
Dont be too scared to drop off if you believe the interview is headed for a
dead end. I have had to take this decision many times and it saved me a lot
of time.
Dont just attend an interview to see if you are a good fit for the company,
interview as well to see if the company is a good fit for you.
Often than not this might follow with a technical interview if you passed
some of the previous tests.
Some startups would just throw a technical test at you just because you
applied for their job.
Dont take the technical test if a company does not respond to you first with
a strong message to show their interest in your skills or does not take their
time to even talk with you.
But if you think the test is fun, will help you learn a new skill or two and you
dont care whether you pass the interview then just take it home and do it at
your pace.
Acceptance email
This means the hiring manager is impressed with your portfolio and thinks
you could be a great fit for the position they are looking to fill.
Usually the acceptance email would also be asking for your availability for a
call with the Lead Developer, CTO, HR, Hiring Management or Owner of
the startup depending on the companys staffing pattern.
This is the email you want to respond to in time. If you take too long to
respond it might have a negative outlook.
But you dont have to be hurried. Take your time. If you are on the bus,
relax. Wait till you get off the bus and you are settled in some suitable place
and then craft your response.
Phone Screening
Things are getting a little more serious now, huh!
Someone is picking what you are doing. They think it would be awesome
working with you so they embark on the journey of wanting to know you
more.
Online interview
Sometimes instead of a phone screen they will schedule an online interview.
In some cases both might be used.
The online interview is different from the phone screen in that it will be
more detailed,
might last longer and most likely
will be conducted by a more technical personal
Physical interview
If all goes well over the phone, the hiring team might be excited about
meeting you in person.
2017 Geoffrey Bans www.loudprogrammer.net Page 32
How to Become a $50/Hour Software Developer
In the event that you are applying for a remote developer position, a
physical onsite interview might not be necessary. However, if it is
recruitment for an in-house developer then a physical interview
would be mandatory.
The way you dress will speak much about you, to the prejudice of many.
Technical interview
This is where your specific technical skills and ability will be tested.
The whole of your life as a programmer you havent had to write code while
someone was watching every single thing you were doing and requiring you
to speak it out loud to them.
The technical interview can be a terrifying hurdle between you and your
dream job. But dont fearjust get ready to show off your skills.
i. Practice
Before your interview, start preparing.
Working through a preparation book will not only refresh your algorithms
and data structures knowledge, but itll also put you in the right problem-
solving mindset.
Most importantly, pick the right preparation book for your level and interes
ts.
Its a free tool with a great number of questions that help you improve your
algorithm skills because it runs your code against different environments
and test cases and gives scores based on the efficiency of your code.
Practice beats panic. So start white-boarding whenever you can, even with
really small problems.
The more comfortable you are with marking up that blank board at home,
the less hesitant youll be at the interview.
There are few things that will throw you off your game like sleep
deprivation. Its comparable to showing up drunk.
If your portfolio is quite interesting and you are actively looking, you will be
lucky to have a couple interview invitations at once.
In some instances the outcomes from the previous interview may not be as
positive. This might rob you of the enthusiasm and energy to face you next
interview, if there was no significant break in between.
If there are edge cases, for example, ask how your interviewers want them
to be handled.
Ask something like: Should I throw an exception, break out of a loop or exit
code execution altogether?
Ask questions to understand what the interviewers are looking for and what
your constraints arefor example,
And dont make assumptions. Even if youre pretty sure its safe, mention
out loud what it is youre thinking so the interviewers can let you know if
youre missing something.
The point is to use your time up front to structure your approach, not to try
to write all the code in your head before you touch the marker to
whiteboard.
Think about the big picture of the problem first. Its fine to pseudo-code the
overall structure, as long as you tell the interviewers thats what youre
doing and that you intend to go back and actually code it later.
Its a good way to offload the organizing of the problem so your brain has
more room for processing. This will also help if you run out of time in the
end the interviewers will at least know how youd planned to finish out the
task even if you didnt get to the details.
Dont worry at first about finding the most efficient way to solve the
problem, unless it naturally pops into your head.
Nail a less efficient solution, and then discuss why its less than ideal. Then,
if you have time or see a better way to solve it, move on to a more efficient
algorithm.
2017 Geoffrey Bans www.loudprogrammer.net Page 35
How to Become a $50/Hour Software Developer
Even if all you have time to do is finish your less efficient version and then
explain how you would do it better, thats just as great an answer.
v. Talk It Out
Most importantly: Talk.
Even if you think your solution is amazing, its better for them to know how
you approached the problem and got to your answer than to see the full-
fledged answer and not have a clue about what led you there.
It also gives the interviewers a chance to help you along if youre stuck or
going down a path thats a dead end.
This makes you to forget about the most important experience for yourself
the learning and the fun involved.
Failing to get the job wont necessarily mean you failed the interview
different companies use different metrics to gauge a successful interview.
The more you think about your interviews in this way, the more valuable
that time will be to you in the long run.
STEP 7: Perform
Build things
Being a software developer is about building things.
You develop them. You conceptualize an idea, lay out a prototype, road-
map and make it happen using code.
If you dont find fun in getting stuff to work and then putting it in the hands
of people, your profession as a software developer will suck.
If you always want all the credit for yourself, your job will not to be fun.
You might be overwhelmed or fail to deliver in time and put your job at
risk. I always wanted to do everything by myself in the early stages of my
career and its a path I dont frequent anymore.
Well, building something by yourself from scratch is always fun and a good
learning opportunity. Most libraries have all the functionality and
abstracted such you cant really get to know whats going on under the
hood.
If you can rebuild it all ground up, youll unearth all the mysteries.
That doesnt mean its the end of the world for you.
I use QA sites like Stackoverflow.com and see if there are similar solutions
to my problem. What I mean is, make your life easier in every way possible.
Accept Criticism
This is not too often, but many a times your code will be taken for review.
Remember that this is about you and your career, not about the reviewers
and their ego.
If you take it too personal, then youll probably to get hurt. Taking
offense will hurt your chances of being happy at your job and your chances
of growing and getting better too.
Look for something positive in the negative review from the panel room.
Instead of asking why the reviewer thinks you are stupid, consider
correcting the mistake they mentioned.
That is the main focus of this point. Take criticism positively. Dont let it get
into you.
As much as you will try to write perfect code it will never be.
Somebody will still find something wrong with it, probably even you. Pay
attention to the standards but dont head for perfection. Its not worth it.
2017 Geoffrey Bans www.loudprogrammer.net Page 39
How to Become a $50/Hour Software Developer
Conclusion
There is no magic push button to getting ahead in your career as a software
developmer.
Often than not you will have to put in the hours of hard work, but
consistency is key to getting the doors open to you.
I hope this guide has helped you to create a plan and has given
you some actionable steps that will make a big difference to your career
and happiness.
By following these steps, you will better your skills, expand your network,
grow as a person, reach the audience you were meant to serve and grow
your career.
Do you find it difficult or overwhelming seeing how all this fits into a
strategy?
Or you are wondering how you could implement this particularly for your
case to take your software career to the next level?
Id be glad to learn about where you currently are at in your software career
and see if we can work together to make it a success.
Success!
About Geoffrey
Hey, Im Geoffrey. Im a software
developer, writer, author, Udemy
Instructor and creator of the Gliver
Framework
Be sure to check the resources sections below for links to materials that can
help you learn to code and advance in your career.
- Geoffrey Bans
Happy Coding!
Resources
Programming Courses Programming Books
1. Upwork.com
2. Freelancer.com
3. Guru.com
4. Toptal.com
1. AngleList
2. Stackoverflow.com
3. Indeed.com
4. Dice.com
5. RoRJob.com
6. Larajobs.com
7. Python.org
8. Flexjobs.com
9. LinkedIn Jobs
10. Hired.com
11. WeWorkRemotely.com