Career Advice for Software Engineers Archives - Simple Programmer https://simpleprogrammer.com/category/career-advice-for-software-engineers/ Thu, 16 Feb 2023 01:43:29 +0000 en-US hourly 1 https://wordpress.org/?v=7.0 27 CRUCIAL Career Advice for Software Engineers https://simpleprogrammer.com/career-advice-for-software-engineers/ Mon, 13 Feb 2023 20:55:43 +0000 https://simpleprogrammer.com/?p=45004 Do you want to reach the utmost success in your Software Engineer or Developer career? Then there’s a number of crucial career skills you’ll need to master: Follow these 27 tips to get the best job you can, achieve mastery over your domain, and surpass your professional and financial goals: Software Engineering Career Advice for...

The post 27 CRUCIAL Career Advice for Software Engineers appeared first on Simple Programmer.

]]>
Do you want to reach the utmost success in your Software Engineer or Developer career?

Then there’s a number of crucial career skills you’ll need to master:

Follow these 27 tips to get the best job you can, achieve mastery over your domain, and surpass your professional and financial goals:

Software Engineering Career Advice for Beginners

When you’re just starting out as a Software Engineer, your focus should be on the right mindset for this stage of your career – and on getting as much experience as soon as possible. 

Here’s some practical advice for keeping your head on straight and finding internships and your first real job as a coding beginner.

1. Don’t Like Coding? Find a No-Code Job

Let’s get this out of the way. It might be that you don’t want a job writing code right now – let alone see yourself in such a career for the rest of your life. 

There’s no shame in considering a position in tech that doesn’t require programming

Why not become a Tech Recruiter, Data Analyst, Quality Tester, or Sales Professional? Not only can these career paths be as interesting as (or for some people, even more than) Software Engineering – but they can make you a decent salary as well.

2. Niche Down to Make More

Specialized programming skills are in high demand. If you’re one of the few who are able to provide them, you’ll be compensated handsomely.

Picking your best niche as a developer starts with doing industry research:

Which tasks are companies looking to have fulfilled, but require special skills, and thus justify high compensation? 

Put in the hard work to become an expert at these. Market yourself as a specialist. It won’t be long before you’re offered some great positions – paying way above what you can ever expect to make as a ‘generic’ Software Developer.

3. Win at Internships

Getting an Internship as a Software Engineer

If you’re looking to gain your first experience as a professional developer or Software Engineer, look no further than an internship at a tech company.

These internships can often be a direct way to a Junior position at the same company. At the very least they’ll look great on your resume, increasing your opportunities in the future.

One unique strategy for scoring an internship as a programmer is to reach out to your favorite companies who aren’t actively looking for interns. Then sell them on all the benefits an intern (hint: you) could bring to their business.

This lets you show off the positive quality of being proactive – but avoid competing with hundreds going for all the same positions.

4. Use LinkedIn to Get a Job

Speaking of competition: The same applies to programming jobs advertised on LinkedIn – companies are swamped with applications. 

You can still score a job on the platform, though – again, by going against the grain. Where others only go for what’s advertised and reach out in generic ways, you network with people of interest and create genuine connections with those working in your field of choice. 

Playing a longer game in your job hunt than most are willing to means you’ll be able to reap the rewards they won’t.

5. Apply For Programming Jobs You’re NOT Qualified For

Have you ever been discouraged from applying for a Software Engineering job because of the requirements listed (multiple years of experience, for example)?

You don’t have to be. I encourage you to apply for some Software Engineering jobs even though you’re objectively underqualified. Let me explain.

One secret of programming job openings is that if a prospective employer likes the combination of skills and personality you bring to the table, you still stand a chance.

Even if you lack some experience

They’ll either hire you for the exact role regardless, or they can turn it into a more Junior position. Either way, you’ve won – only because you tried.

6. Know What to Ask Your Future Employer Before Accepting Any Programming Job Offer

You got the offer? Congratulations – your hard work has finally paid off!

But, before you outright accept the offer for your new position as a Software Engineer, you should ask your employer some crucial questions.

Ask about how they go about fixing bugs, so you can judge if working for them will be a mess. Ask about their guidelines for code quality. Ask about their QA process. Ask how they go about deploying their software. 

Scrutinize their answers and be mindful of any red flags.

Before you say yes, make damn sure your new job won’t send you down a path of endless frustration.

7. Avoid First Year Software Engineer Mistakes

A lot can go wrong when you’re just getting started in your first Software Engineering job.

The biggest thing to trip you up is your own ego. As a new developer, your best bet is to stay humble. Also expect to work on your soft skills alongside your technical skills – many newbies ignore how important those really are.

While this humility is key, it doesn’t mean you should neglect your needs. Even if you’re young and enduring as a first-year programmer:

Strive to start working on the work that’s most meaningful to you. And start taking care of your health now, so you’re not hit with burnout down the road – even if right now you feel invincible.

Advancing Your Career

Getting paid what you're worth as a Software Engineer

Once you’ve scored your Software Engineering job, the goal is to make the best of your situation: Negotiate intelligently. Position yourself for any future promotion. Get paid what you’re worth.

8. Win at Salary Negotiation

Negotiating well can win you tens of thousands of dollars within a single conversation.

Some effective salary negotiation tactics for Software Engineers include:

  • Knowing common industry numbers 
  • Negotiating from a position of strength (having a referral, a great reputation, and/or other offers lined up)
  • Refraining from naming your number 
  • And making strong counteroffers. 

It’s a good idea to practice mock salary negotiations just like you do mock coding sessions before your interview.

9. Stop Being Underpaid

Here’s a shocking truth:

Many people in Senior Developer positions aren’t even good coders. 

This means that if you are, you don’t have to be shy about aiming for a six-figure job. As a proficient programmer, Don’t settle for a low-paying position if you’re a proficient programmer – instead, aim high.

Because even with just the technical skills you already have, you’re often able to outperform many higher-salaried developers.  

10. Get a Raise or Promotion

If you want to get a raise or promotion in your programming job you need to be proactive about that goal.

Keep improving your skills. Take on more responsibility. Become more valuable inside and outside of your company. And be open, straightforward and specific when communicating your ambitions.

Follow those steps and you should be able to increase your income and influence over time. Still facing resistance despite all your efforts? Then maybe it’s time to open yourself up to better opportunities elsewhere.

Navigating Your Job

How to navigate your developer career

As a Software Engineer you need to think strategically – not just in your development work, but also regarding your work environment and the marketplace.

11. Learn What it Takes to Compete with Cheap Programmers

What should someone from a Western country do to be better than and differentiate yourself from programmers from lower-GDP countries who offer their services more cheaply than you can?

The number one area to excel in is your communication with clients. If you take the time to deeply understand their needs, and build a good relationship, you might be able to get a leg up on someone who’s relying on his competitive technical skills coupled with low prices to get the job. 

Simply put: Care more, communicate better, and you can still win. 

If you’re from a lower-GDP country yourself, apply the same strategy to be even more in demand.

12. Know What Your Boss Doesn’t Understand About Software Development

In your job as a Software Engineer it’s important to recognize that your boss likely doesn’t understand your development work as well as you do.

Common examples of this are your higher-ups not understanding the gravity of technical debt, putting too much stock into time estimates, or being too skeptical of new technology and possible investments.

Align your work processes and communication with your manager to reflect this – so that you improve your collaboration, nip unnecessary conflict in the bud, and make your own life easier. 

Advice for Leaving Your Developer Job

When and how to quit as a Software Engineer

When it’s time, it’s time. Learn how to master the transition. Whether that’s to something completely different – or to bigger and better challenges within Software Engineering:

13. Know If You Should Quit Programming

Have you gotten to a point where you’re not feeling your programming job anymore?

This could mean you should quit, or it could mean you should pivot in one of a number of ways. 

It depends on your why for getting a job as a developer in the first place: If it was because you actually loved the work – then try learning a new, related skill. Or apply to another company in the industry. You could even pivot to a different kind of tech job.

On the other hand, if you started just to make lots of money as a Software Engineer, but now you’re too bored with the work:

Can you make money another way? If not yet, then keep working until you find something that pays decently and that you love. But if you already know what it is, then yes – you should quit programming.

14. What To Do When You’re The Smartest Person In The Room

What we’re trying to do on this platform is get you to level up your skills so that you become the most valuable programmer you can be.

Becoming the smartest person in the room leads to new challenges, though:

You might grow disillusioned with your current work environment. People will notice – and even though you’ve objectively become more valuable, might plot to replace you.

If not that, you yourself feel the longing for a position that allows you to keep growing. The bottom line in both cases: It’s time to move on.

15. Know the Signs it ‘s Time To Leave Your Job

Leaving your job

If you’re starting to get depressed because of what’s happening at your job – or you’re overworked from having to fix everyone else’s mistakes – it’s time to plan your escape.

Listen to the signs that it’s time to leave your programming job. Don’t continue being burned out and miserable.

16. How to Leave Your Software Development Job

Now, if you’ve decided to leave your job: Do it ASAP – don’t stay stuck in a situation that’s not serving you anymore.

But take care to do it the correct way. Avoid drama. Don’t kick them while they’re down. Don’t burn the bridges.

The best way to leave your Software Engineering job is to give the standard two weeks notice. Put your honest best effort into training the person who will replace you. And be quiet about everything you know is going wrong at the company – talking about it can only hurt you. 

Following this strategy for your exit means you’ll minimize any hard feelings harbored and helps protect your reputation, which is priceless.

Longevity, Unemployment & Restarting Your Career

To make your career as a Software Engineer long and prosperous, and weather the inevitable storms – such as coming back from a forced or voluntary break – make sure you heed the following advice:

17. Let Unemployment Be Your Teacher

Being without a job as a Software Engineer can be an opportunity for you, if you let it.

Take this time to develop yourself personally and professionally.

  • To make sure you shine at your next interview, become a master at solving coding problems 
  • Train up your money management skills 
  • Start upping your networking efforts ASAP.

These skills will not only serve you well for the rest of your life, they’ll also put you on the fast track to a new job – often one that’s more fun, fulfilling, and highly paid than your old one.

Overcome Your Career Gap

If you’re out of a job for a while, use the time to work on your time management. Learn new techniques and upgrade your skills. Keep going after new opportunities.

Your career gap won’t matter if you’re prepared to work hard during your break and once you start in a new position. 

18. How to Restart Your Developer Career after a Long Break

What about if you’ve taken an extended break, for multiple years maybe? Do try and make a comeback – developers are still in demand. Even if you need to start small after a long break from programming, there’s no question it’s worth it.

Start with an honest evaluation of your skills in relation to market demand. If you have gaps to fill in after such a long break, consider taking a course, certification or bootcamp – or at least dive headfirst into free tutorials.

Increase your networking efforts, brush up your resume, prep for interviews, and become determined about your job hunt. 

19. Succeed as an Older Developer

Programmer career after 40

Your employability does in fact go down after 35 years old. And most developers are out of the field before 40.

Does that mean it’s hopeless for older programmers?

Not in the least. There’s plenty of examples of those north of 40 still going strong. What it comes down to is staying with the times. Don’t get set in your ways. Always keep learning. Adopt new technologies.

Strive to keep a young person’s mindset, and you can be a successful Software Engineer into your 60s and 70s.

Software Engineer Career Mindset & Strategy Tips

Having a strategy for your programming journey is essential. So is the correct mental attitude. The following tips help you master these elements.

20. Find your Why as a Programmer

If you have a strong why in your work, you’re less likely to burn out. 

It’s fine to get into Software Engineering for the financial benefits. But it’s even better if you find the underlying why for getting a programming job:

Living the lifestyle you want, providing for your family, fulfilling your potential in a hard skill, and bringing new things into the world, for example.

21. Find Inspiration from Other Developers’ Life Stories

No matter where you’re at in your Software Engineering journey – there’s someone out there who’s story you can learn from.

There’s programmers who started late and still became successful. There’s those creating the kinds of projects you want to start yourself. 

Use other developer’s stories as inspiration to light a fire under you.

You know it’s possible to chase after and reach your goals because of those that came before you – those who once were in a similar situation as yours or who’ve had to overcome even greater challenges than the one you’re facing.

22. Use Powerful Success Strategies

Programmer career success

To be a great programmer you need to be almost addicted to hunting for information and learning new things. You need to make good use of the best learning resources out there.

And you need to take all of it and keep practicing until you’ve mastered it. Solve the problems presenting themselves to you, and keep looking for new ones to solve.

Everything is an opportunity to become better. 

Finally, one of the most powerful strategies for success as a programmer is to enroll in courses and bootcamps, and find (real-life or online) mentors.

23. Conquer the Path to Kaizen

The Japanese concept of Kaizen (roughly “spirit of continuous improvement”) is useful for any Software Engineer and a part of Agile Methodology.

In your career as a developer, you move through the different stages of Kaizen.

You start in Shu, ‘the state of following’. Then you move on to Ha, ‘the state of innovation’. Until you arrive at Ri, ‘the state of flow’. Strive to contribute to Kaizen each working day, and you’re set to become a true master at your craft.

24. Become a Programming Growth Hacker

Becoming a growth hacker in the field of programming means you’re looking for ways to revolutionize your company by looking for improvement in all areas.

Your coding background will help you with testing and quick iterations. But on top of that, you should become proficient in the skills of copywriting, outreach, design, and project management.

A position as professional growth hacker inside a company not only comes with nice financial benefits – it’s also fulfilling because your efforts will help transform revenue numbers and impact.

25. Overcome Your Impostor Syndrome

Overcoming impostor syndrome

Most of us feel impostor syndrome at some point in our programming career. What’s important is you don’t give in to it.

Concentrate on what you’ve already achieved (however little it may be) and the goals you’re working on – instead of paying attention to the perceived superiority of others. 

Don’t be afraid to look and act like a beginner. Be that beginner who is immersed in learning, and you’ll find that most people ahead of you are more interested in helping you than in judging you for your lack of skills.

26. Give Up Certain Things

Here’s what to avoid in your Software Engineering career:

  • Don’t sacrifice readability for ‘fancy’ code.
  • Don’t try to create functionality you’ll only need further down the road – program first what you need for it to work now.
  • Don’t be an island. Mingle with other programmers online and accept their help. 
  • Don’t write code with zero comments. Make it easier for others to understand your code.
  • Don’t procrastinate on debugging. It’s essential and should be an integral part of your process.
  • Don’t mindlessly copy & paste others’ code. Aim to understand everything that goes into your software.
  • Don’t take shortcuts to reach your goal. Figure out each problem you encounter, and be willing to put as much effort and care into solving it as necessary.

27. Cope With the Challenges of Software Development

There’s no question Software Development is a complicated topic – and this complexity can be hard to deal with. The first step to coping with the challenges of development is to simplify as much as possible, to keep things manageable and avoid overwhelm.

Also aim to improve your understanding of the field all the time. Stay ahead of trends so you’re never caught off-guard by the change that’s constantly happening.

If you can do all this while also taking care of your health, you’ll be well-equipped to thrive in this challenging industry.

The post 27 CRUCIAL Career Advice for Software Engineers appeared first on Simple Programmer.

]]>
How to Restart Your Developer Career After a Long Break https://simpleprogrammer.com/how-to-restart-your-developer-career-after-a-long-break/ Mon, 04 Jan 2021 15:00:08 +0000 https://simpleprogrammer.com/?p=38016 Software development has been one of the cream areas which has offered ample job opportunities to individuals having strong coding skills. Importantly, it is not just professionals having educational qualifications who are making strides in the industry; individuals with coding skills are tremendously successful. Does this sound like a trip down the memory lane? Was...

The post How to Restart Your Developer Career After a Long Break appeared first on Simple Programmer.

]]>

Software development has been one of the cream areas which has offered ample job opportunities to individuals having strong coding skills. Importantly, it is not just professionals having educational qualifications who are making strides in the industry; individuals with coding skills are tremendously successful.

Does this sound like a trip down the memory lane? Was there a time when you did really well in the coding field but some situations coerced you to go in a different direction? Do HTML tags, algorithms, APIs, or SQL commands beckon you with a smile?

Then, this post is a must-read for you.

If you have left your programming career years back and your fingers are hankering to hit the keyboard to code, there are specific steps you can take to restart your career. I will share these with you, offering concrete tips on how to get back to doing what you like!

Why You Should Say Hello Again to Programming

During the past decade, with technology increasing by leaps and bounds, there have been limitless opportunities in the development arena.

According to statistics provided by Slashdata, the number of software developers across the world was 18.9 million and this number is going to augment by 26.1 million in 2030, taking the total number of developers to 45 million. One can only imagine the growth of the number of jobs the software development field is going to offer.

Image Source: www.daxx.com

With such encouraging statistics, anyone with the right skills can be on tap to join the programming field. If you have been mulling over rejoining the IT development industry, then no time can be better than this time.

With the world hit by COVID 19 and expected to face repercussions of it for the next 5 years, what can be better than a job that gives you the flexibility to work from anywhere in the world? Yes, with technology at the peak of advancement, it is now easy for professionals to work and collaborate online.

Moreover, with the growth of digital platforms fueled by the current structural changes, there’s a lot of places where coding would be needed. People and businesses are feeling the need to connect more at the digital level, due to the fear present in the atmosphere.

A number of platforms would evolve which would let users perform certain activities virtually which were previously done only offline. This would usher in the demand for developers who would assist in the development of such platforms.

Let us look at how you can rejoin the coding sector.

Surveying the Coding Landscape

There have been a number of instances when professional developers had to give up their coding career and pursue other fields, due to professional, personal, or financial reasons. You may have been coerced to take up other fields while your heart was always in coding. However, change is the only constant thing in life.

If you feel that you would like to jump back to the coding area, keeping in view the number of growth opportunities it offers and the flexibility to work from anywhere, then the IT field is here to welcome you with open arms.

You can go for an entry level job in a small development firm if you’re ready to take a lower salary and it has been years since you last coded. However, if the gap in your career is not too long—say, less than five years—and you believe that your skills are still fresh, then you may go for something higher than entry-level.

Although some big companies adopt the traditional approach of hiring only those professionals who hold a degree, a number of companies have made exceptions by hiring talented individuals with a strong portfolio and effective programming skills.

With the number of certified coding courses, tutorials, bootcamps, etc. expanding, there is an increase in the number of individuals who are making a comeback to the coding arena. Those who had previously abandoned coding, due to their own reasons, wish to get help from these tools and begin coding once again.

Assess Your Coding Aptitude

The area of coding is vast. There are a number of areas in which programming is carried out. Right from software development to creating a AR/VR based app, the field is ever-expanding. Hence, at the outset, you need to assess the programming skills that you possess. Furthermore, you also need to check if these skills match up to the emerging new technologies. Ask yourself the following questions:

  • What programming skills do I possess?
  • Which of these skills have relevance in the new age programming era?
  • Do I possess the ability to apply these skills to the evolving technologies?

You can find the list of latest technologies and the skills needed to work on them, here.

Choose a Platform/Language

Once you have assessed the skills that you have, you can narrow your research area to the platform or language you will be choosing. This is because it will help you remain focused on a specific area or the language which you are confident in. Usually, selecting more than one platform will disperse your attention and you may start feeling that you are on the wrong path. For instance, if I restart learning any two languages, say French and Portuguese, it might be possible that I may jumble up certain vocabularies which may make you feel confused or lost.

As Lucius Annaeus Seneca once said

“If one does not know to which port one is sailing, no wind is favorable.”

developer carrer Restarting your career in the IT development field needs you to choose a specific area of development in which your skills are applicable, and you are interested to proceed.

Once you do thorough research in your first step and discover the areas in which you possess skills, it’s time to choose your field based on the results you secured in the previous step.

For instance, if you are good at PHP and also remember most of its intricacies, then you can choose web development. However, if you have confidence in your Java abilities then you may choose to go for web-based dynamic apps or become a Java Android developer.

Update Your Knowledge

In the next step, you will have to possess complete knowledge about the new updates introduced in your chosen area. A review of all the changes that took place since you last coded or programmed using the platform/language will give you a clear idea about the knowledge goals you need to achieve.

You must explore the areas where you need to increase knowledge—either by reading or practicing that area of programming.

For instance, if you want to restart your Android development career after a break, then you can view all the changes that occurred in the Android platform after you took a hiatus. This will help you trace your path back and reach again to the forefront.

If need be, join online courses and/or other tutorials which offer a refresher to professionals who are looking to restart their career. This will help you fill the knowledge gap. There are a number of e-learning platforms which provide personalized courses to meet your training needs. You can explore any of the following to upgrade your knowledge:

  • Udemy
  • Skillshare
  • Udacity
  • Masterclass
  • Codecademy
  • Teachable
  • Pluralsight

Start Networking With Fellow Developers

There are a number of languages which are open-source—such as PHP, for example—and so they have a community of developers. Once you join these online communities, you will have complete updates about events, coding resources, jobs, mentorship, and much more.

You will not only remain informed about the upcoming job opportunities, but will also keep your skills honed as new updates are often shared amid developers. Moreover, being part of a community will give you an opportunity to network with other developers, further enhancing your knowledge about job openings, events, or recruitment in general.

Update Your Curriculum Vitae and Nail a Job

Once you are done deciding your field, it’s time to get into some action by utilizing the knowledge you gained. Prep up your CV so that you can showcase your talent as well as portfolio.

There are a number of ways in which you can present your CV. Indeed, you can showcase your skills by smartly applying them to the presentation of your CV, thus impressing your prospective employer. For instance, if you have chosen HTML or DHTML as your area of development, you can create a dynamic web page which showcases your curriculum vitae. Updating your CV and searching for a job are the two major steps which can lead to restarting your developer career.

Be patient with your job search. However, honesty always pays. You must positively showcase your career gap in the CV instead of beating around the bush. For instance, you can show them that the gap in your career was the time which you utilized to improve your skills or increase your knowledge.

To name one example, if you took a break to join the writing field, you can state that it has helped improve your typing speed and accuracy, which are time-saving and essential for coding. At the beginning, you may find it tough to find a job opportunity. However, networking and exploring different companies for job opportunities can help you land your dream job.

Determination

Last but not least, an important aspect in all the above steps is determination. There will be times when you will feel like giving up, whether trying to decide your programming niche or finding a job. However, you should be determined and confident to restart your career as a developer. Provided you don’t give up, you will surely give a new head start to your novel journey as a professional developer.

Restarting a Rewarding Career Is Possible

developer carrer With determination and a strong will to give a fresh start to your career, and no matter how long the break, you can surely succeed. Moving in one and the right direction are the key things to keep your head clear and get results from your efforts.

Simply put, if you would like to walk again through the lanes of coding, then all that you need to do is assess the IT skills you possess, shortlist a platform or language as per your coding aptitude, upgrade your knowledge, start getting in touch with network developers, reframe your CV to showcase the skills you acquired during the career break to find a job, and be determined to pursue your chosen path.

Once you follow all these steps while steering clear of all your qualms, a rewarding career in the development field shall surely embrace you.

The post How to Restart Your Developer Career After a Long Break appeared first on Simple Programmer.

]]>
13 Things You Should Give Up if You Want To Be a Successful Developer https://simpleprogrammer.com/things-programmers-should-avoid/ Wed, 11 Nov 2020 15:00:59 +0000 https://simpleprogrammer.com/?p=37481 There is one important prerequisite to becoming better at anything: Concentrate on the things that matter, and give up what doesn’t. Developing is no exception. It is a process that can become problematic if you decide to pursue perfection in your programming job, focusing on aspects that are complex but inessential. I am a senior...

The post 13 Things You Should Give Up if You Want To Be a Successful Developer appeared first on Simple Programmer.

]]>
things programmers should avoidThere is one important prerequisite to becoming better at anything: Concentrate on the things that matter, and give up what doesn’t. Developing is no exception. It is a process that can become problematic if you decide to pursue perfection in your programming job, focusing on aspects that are complex but inessential.

I am a senior software developer and also happy to train future programmers. In the last couple of years, I have written quite a few articles, mainly related to learning Java and other programming languages. In this regard, I turned into a sort of collector of errors of novice programmers. I analyze mistakes and try to give prescriptions for more effective learning.

Indeed, that’s precisely what I have done in this post: I have collected 13 things a novice programmer should avoid. With this guide, I want to help all beginners focus on the important aspects of developing, thus having a promising start to a successful career.

Give Up Creating Syntax Sugar

Are you striving to write short code? Stop!

The first rule of thumb on how to become a developer is to write readable code so the dozens of people who read it understand it and find it useful, regardless of the number of lines.

If you are a beginner in programming, try not to write much syntax sugar—defined as alternative syntax within a programming language to make some things shorter. Your initial task is creating readable code.

The idea that you should write code using the fewest words or characters possible will only see you complicating an otherwise simple process—and chances are high that later you will not understand what you meant. It is wiser, therefore, to focus on making your work readable.

Give Up Creating All Features at Once

Futuristic thinking is good, but not for coding. Your code should be useful now and today.

When you work on a relatively large program, say, a personal project, write just enough code to run the system. Always start with basic functionality, and gradually add features afterward. This way, you will experience fewer bugs, and you will spend less time developing, maintaining, and debugging.

If you ever need to add features and functionalities to your code, you can always do so later on. Instead of wasting your time writing code you do not currently need, you could spend that time learning something new.

Give Up Ignoring Forums and Online Communities

Help is good; make effective use of it.

Development comes with its hurdles, some even large enough to halt a project altogether.

As a good developer, you need to learn when to search for help online. The internet has a wealth of online communities and forums for developers to use as resources and to help them with current roadblocks they may be facing. Stop hesitating to ask questions on forums out of fear of looking stupid. Stupid questions don’t exist. 

Every time I posted a description of bugs I had to fix on platforms such as Stack Overflow, Reddit (r/WebDev and r/AskProgramming), or Hacker News, I got detailed answers written by other developers on how to handle that problem. Forums are an amazing source of knowledge, as programmers share their personal experience, and you can get many insights that are not covered in any tutorials.

When you are stuck on a line of code, learning to search for guidance on the internet will help you find solutions without stalling. You can create a list of handy go-to resources as you go.

Give Up Failing To Add Comments in Your Code

A lot of developers seldom remember to document.

Adding comments to your code helps you keep track of your project. It also helps others grasp what your code offers. With notes, you make information more understandable.

In case you forget something about your code, or you need to explain it to someone, comments help you and others down the line.

Give Up Avoiding Debugging

Debugging is a crucial part of how you become a successful developer.

There is no perfect code out there. Even the most popular apps and systems from big tech companies still fail. This is why there are so many updates to your favorite apps.

Debugging, which is identifying and removing parts of the code that have errors, takes time and energy. In fact, most developers spend more than 50% of their time debugging, and the process is not any fun. However, it is the only way to ensure that your code does not crash, misbehave, or get hacked into.

You can use debugging tools to make the process easier and improve the code while you’re at it. Look for a tool that works best to make the process smooth. For Java, I would recommend using IntelliJ IDEA.

Give Up Using Ctrl+C and Ctrl+V

things programmers should avoidCopying and pasting without understanding the code is not the solution; work on understanding the problem.

The temptation to copy someone’s code can be strong at times. However, this is never a good idea in the very beginning. Copying and pasting someone else’s code is not a good habit because your initial goal should be to understand the problem and figure out the solution to it. Doing it yourself is the only way you can learn.

I compare it to cheating in school when your friend does your homework; you just rewrite the solution and get a good mark. Later, the exam comes and you have to do tasks by yourself, but you have no idea how to tackle them. So do your best, and always try to understand the problem.

It is normal to get stuck when developing code; this happens even to the best developers. A wiser approach to such a situation would be to study the problem until you understand it enough to provide a solution. This approach will help you sharpen your knowledge and skills.

However, if you understand the problem with your code but don’t wish to waste time coding from scratch again, it may make sense to copy another developer’s work. Even then, you should have an in-depth understanding of how this code works.

Give Up Hacking Problems

Hacking your way through all challenges won’t get you far; seek to understand and create better solutions.

When faced with a coding challenge, many developers will rush to hack it. What they don’t realize is that they are causing more harm than good. Attempting to hack code you do not understand seldom works. In fact, it often only complicates the problem further.

You should strive to figure out the problem first. Once you have established an understanding of the problem you are dealing with, it will be a lot easier to generate a sustainable solution to it. This way, you learn and develop your problem-solving skills, which will be essential ingredients for your success in future programming projects.

Give Up Your Comfort Zone

“How long does it take to become a developer?” beginners often ask. The learning process starts as soon as you leave your comfort zone!

If you only handle projects you are confident about, you are living in a comfort zone. There is no space to grow your skills.

You need to take on projects that scare you, as they give you a chance to expand your skills and grow your career in development.

Once you take on a big project, you start learning new bits and working on things you don’t know yet. By the end of the project, you will be more skilled as a developer.

Stop Giving Up Learning

One programming language is no longer enough; learn more.

A few years back, knowing one coding language was enough to impress your employer and secure your job. Unfortunately, that time is long behind us.

The contemporary world’s technology landscape requires developers who are flexible and versatile. You know Java or C++ well? Learn some front-end technologies, SQL, other programming languages, or new features of your language. This way, you will remain competitive in today’s workplace.

Luckily, you do not have to go back to school to learn new coding languages. There are online platforms that allow you to learn and develop your knowledge and programming skills:

CodeGym is an online platform for learning Java. This course envisages the approach “learning by doing”—80% of your time is dedicated to doing different programming exercises and

20% to learning theory. The course is fully gamified, which makes the learning process really exciting.

CodeAcademy. This website has a wide range of different courses and tasks. If you choose this project, you will gain access to more than 300 hours of content related to coding. This platform might be useful for people with different levels of training.

freeCodeCamp has an amazing choice of different practical coding tasks. The only catch is that this platform is not very suitable for the newbies to the programming world, as you have to be confident with programming theory.

Khan Academy is a noncommercial website. The platform mostly covers theory, so you will not find a lot of practical tasks here. But as soon as you are more or less confident with coding basics, you can go for CodeGym or CodeAcademy to practice.

Give Up an Unhealthy Lifestyle

things programmers should avoidWithout health, your success will be short-lived. 

Many programmers have developed heart problems because of their chronic lack of sleep, often caused by consuming unhealthy energy drinks in an effort to stay up coding through the night. Don’t do the same; create a schedule your body can handle.

Getting ample sleep is essential for your well-being. It is very easy to distort your sleeping pattern while trying to finish a project in time, and this sacrifice often feels justified. Overworking yourself and interfering with sleeping hours could hamper your well-being and hinder you from becoming a successful developer in the long run. You should plan your work to avoid overworking.

Similarly, many developers are at risk of developing back problems. This is mainly because they adapt bad sitting postures for prolonged hours. Therefore, it is vital that you get the right seat and worktop for your workstation. This will ensure that your back remains strong and healthy.

Give Up Avoiding Collaboration

Don’t isolate yourself. Learn how to become a developer and grow with a team.

Beginner programmers often hold on to the misconception that they can become successful developers on their own. Going solo can be fun, but it won’t make you successful.

Team members and team environments are vital ingredients in the modern computing world. Many coding projects are handled in teams. Therefore, you need to learn to be a team player and collaborate with others if you want to be successful in this profession. Working with others will sharpen your skills and make you more knowledgeable—traits that will set you up nicely for a successful career.

Give Up Comparing Yourself To Others

Comparisons are odious; focus on growth.

It is normal to feel the need to be better than everyone else in your career, but if that is what you concentrate on, you may not achieve much growth. Instead, you should focus on adding incremental value to your knowledge and skills. Use every opportunity available to you to make regular improvements to yourself.

You can set goals for yourself and work toward achieving them. To do that, you might need to set key performance indicators to track your progress toward achieving your goals. If you are learning to program, such indicators can be, for example, hours of regular coding, the number of solved problems, the number of solved problems of increased complexity, the topics studied, questions that you helped other programmers solve on the forums, and so on.

Give Up Giving Up

Giving up is not an option!

Some projects will be challenging and make you want to hang up your boots. However, this is your chance to learn something new. You need to realize that every developer goes through hard times. Actually, all people eventually go through hard times in their lives.

You can take a few days to learn something new to help you solve a problem, but you shouldn’t quit. Problems will show up one after the other, and all you need is to learn to power through them. In my opinion, our lives would be boring without all the challenges.

You Are Not Alone in Your Journey

While giving up your bad programming habits may seem difficult at times, giving up altogether is not an option. Becoming a successful developer is not an easy process. You will be faced with several challenges and disappointments along the way, and you may get discouraged at some point.

However, you are not alone! Trust me, all beginners go through a loss of motivation and become frustrated, but it is very important to remember that problems are temporary, and you shouldn’t feel disheartened and stop. The road is made by walking. You must master the motivation to keep going. I hope the above tips will help you keep your focus on what is crucial for your career to progress. Implement them, and you will be happy you did.

The post 13 Things You Should Give Up if You Want To Be a Successful Developer appeared first on Simple Programmer.

]]>
You’re Not a Fake Programmer, That’s Just Impostor Syndrome https://simpleprogrammer.com/programmer-impostor-syndrome/ Fri, 04 Sep 2020 14:00:03 +0000 https://simpleprogrammer.com/?p=37030 I’ll never forget the time I spent a summer at Facebook. I had an opportunity most people can only dream of. I stepped into a robust Software Engineering culture and a community of mission-driven people. The perks were everything you’ve heard of and more. I ate at gourmet cafeterias, rode free commuter buses with Wi-Fi,...

The post You’re Not a Fake Programmer, That’s Just Impostor Syndrome appeared first on Simple Programmer.

]]>
programmer impostor syndromeI’ll never forget the time I spent a summer at Facebook. I had an opportunity most people can only dream of. I stepped into a robust Software Engineering culture and a community of mission-driven people. The perks were everything you’ve heard of and more. I ate at gourmet cafeterias, rode free commuter buses with Wi-Fi, and had all the free tech gear I wanted.

That said, I remember my first week being the toughest week of the summer. The people who ran the intern program decided to gather several of the summer interns and set up a happy hour for us. During the happy hour, all the interns were asked to mention which school we attended, which team we were working on, and what we wanted to accomplish by the end of the summer.

The first intern:

“Stanford University. I’ll be working on the Android team for Facebook marketplace. I want to completely revamp how sellers display their items and help them sell faster.”

Then the second:

“Brown University. I’ll be working on the Marketing Data Science team. I want to create new algorithms that will help us reach new demographics.”

Then there was me:

“Uh, I went to, I mean, I go to Baylor University. I’ll be working on the Data Center Infrastructure team, and I’m not sure what I want to do yet.”

There was a deafening silence.

“Harvard University. I’ll be working on …” The rest of the interns continued their introductions.

I felt so many emotions. I didn’t feel I belonged among such accomplished individuals. I didn’t deserve to be put in the same group. I felt intimidated by their robust skill sets and extraordinary visions to change the world. When I looked at what I had to offer, I paled in comparison.

You may not have had a Software Engineering internship or job yet, but you’ve felt the same exact emotions I just described. Maybe you’ve written “Hello World” and thought “Who am I kidding? I’m not a programmer.” Maybe you’ve talked to a seasoned software engineer and felt intimidated by their robust knowledge of programming. Maybe someone asked you a programming question, and you felt like a phony because you couldn’t answer it.

These feelings of uncertainty, intimidation, and illegitimacy aren’t isolated occurrences — they are a part of a larger experience many have come to know as “impostor syndrome.” Impostor syndrome is any feeling of professional inadequacy. You feel you don’t belong because everyone else has “it” figured out.

Impostor syndrome can plague programmers of all levels. The number of proficient programmers who still feel like they’re not good enough will surprise you. You’re not hurting yourself if you experience the feelings that come with impostor syndrome. But you are in trouble if you give into those feelings.

The rest of this article covers two things: how to recognize if you’re giving in to impostor syndrome and how to overcome it. I’ll share personal stories of how I experienced feelings of uncertainty, intimidation, and illegitimacy throughout my programming journey.

I’ll also share the ways I overcame those feelings. By the end, you’ll walk away with proven strategies and approaches to help you push through impostor syndrome and make unbelievable progress in your own programming journey. Sound good? Let’s get started.

Are You Giving In to Impostor Syndrome?

Almost anyone can recognize when they’re scared or uncertain, but recognizing when you’ve given in to that fear and uncertainty can be difficult. The crazy thing? Two programmers can both experience the feelings that come along with impostor syndrome, but produce vastly different results.

Several years ago I attended a two-hour coding workshop. The instructor was going to take us through nuanced programming principles like recursion and classes. As I made my way to the entrance, I could feel my stomach tighten up. I thought of all the coding concepts I didn’t know and how I struggled to even write a simple function. I walked in and sat down at a table by myself.

I was scared to talk to anybody because I was convinced every person knew more than I did. My worst fear would soon be confirmed. The person facilitating the meetup asked everyone who was comfortable with a programming language to raise their hands. Everyone’s hand went up — except mine. Talk about intimidating.

The instructor encouraged people to ask questions as he went along. He wanted the workshop to be interactive. You know what I did? I stayed silent the entire time. Within the first five minutes of the workshop I was lost, but I was too scared to ask questions because I wanted to look confident. Other people spoke up and worked through their problems while I wallowed in my uncertainty.

I left the workshop and felt a deep regret. I learned nothing. I wasted two hours of my time.

Looking back, I can recognize that I gave in to impostor’s syndrome. I know I gave in because I allowed my uncertainty and fear to hold me back from growing.

That’s what giving in to impostor syndrome for programmers looks like. You not only experience feelings of being a fraudulent programmer, but you allow those feelings to hold you back from developing your programming skills.

programmer impostor syndromeWhen you look back at your programming journey, in what ways have you given in to impostor syndrome? How have you allowed feelings of uncertainty or being a fraud prevent you from learning? Maybe you lost confidence in your learning direction because someone asked you a random coding question you couldn’t answer. Maybe you avoided a coding meetup because you felt judged by the established engineers at your last one.

Whenever you code or do anything related to programming, I encourage you to ask yourself, “How did I get better today?” I ask this question anytime I get done working on a project, attending a coding meetup, or trying to learn a new coding concept. If I can answer “yes,” I know I conquered impostor syndrome for that day. If the answer was “no,” I know I can do better to manage my impostor syndrome next time.

As you find ways to get better, you’ll overcome impostor syndrome, which takes us to our next question.

How Can You Overcome Impostor Syndrome?

When you look at established programmers, you may feel like a phony compared to them. When you’ve realized your coding skills aren’t where they should be, you may think of other programmers who are ahead of you.

Impostor syndrome tries to make programming all about the other person. If you want to overcome those feelings of intimidation, uncertainty, and illegitimacy, you need to focus on you. That’s where we’ll start.

Strategy #1: Focus On What You Produce

Before going into any endeavor where you’ll code or learn about coding, do your best to focus on your results. Impostor syndrome will tempt you to look at other people’s progress and what they’re accomplishing. Then you’ll feel bad because you’ll lose in comparison.

If you want to beat impostor syndrome, you should concentrate on your past results and the results you expect to produce. That way, you never lose because you’re comparing your results against what you’ve already done. If your results are better, you’ve improved. If not, you can further refine your workflow and find a way to improve for next time.

Strategy #2: Put On Your Learner’s Hat

When I went to my first coding meetup, I felt nervous. I was scared I’d be the worst programmer in the room. Instead of letting other people’s competency throw me into analysis paralysis, I decided to put on a learner’s hat. I did this by being upfront about where I was at as a programmer. I told people I didn’t know what to work on, but that I was there to learn.

To my surprise, people responded with kindness and openness. They showed me what projects they were working on. I’d ask a question about their problem-solving approach, and they took time to explain what their code was doing.

When you position yourself as a learner, people tend to open up and make themselves available to you. In most cases, people are even more inclined to help you along your programming journey. The best part about positioning yourself as a learner? They won’t (and shouldn’t) judge you.

Strategy #3: Find People of Peace

Throughout the night the meetup’s facilitator went around to each person and asked what they were working on. I dreaded the moment he would come to me and I’d have to tell him I was working on nothing. With 30 minutes left to go, he approached me. He asked what I was working on, and I said, “I have no idea, but I’m learning from watching.” His face went blank, and then he smiled. He sat down next to me and encouraged me. He said to never stop learning and that I was doing exactly what I should be doing at my stage of programming. He was my person of peace.

People of peace are anybody who’s willing to show you the programming ropes. The facilitator was an unexpected person of peace but was much needed nonetheless. He provided pivotal encouragement and pointed me in the right direction. Be on the lookout for people of peace. They’ll make your programming journey a lot easier.

Strategy #4: Fixate on Growth

Like I mentioned earlier, growth is the best indicator that you didn’t give in to impostor syndrome. It’s also a great way to overcome impostor syndrome.

If you want to overcome those feelings of uncertainty and intimidation, you should focus on how you can get better — even if that progress seems minute or incremental. Keep a book on hand so you can always have something to keep your nose in. Run through mock interviews so that you can refine your interview skills, but also learn how to anticipate potential interview questions.

If you’re looking for a great programming book to help you grow, I recommend checking out Grokking Algorithms, which is an illustrated guide for teaching algorithms! If you’re looking to get into interview questions, try reading Cracking the Coding Interview.

Strategy #5: Ask Thoughtful Questions

This strategy should be #1 because it has never failed me. I love asking thoughtful questions. Questions are disarming, even for the snobbiest of programmers, if you ask them the right way. Asking thoughtful questions ties in with positioning yourself as a learner, but it takes the learner’s hat strategy a step further. When you ask a question, you’re also asking for advice. People love to give advice. I suggest you take advantage of that.

programmer impostor syndromeThe one caveat is don’t be gimmicky or demand answers. Put yourself in the other person’s shoes. Maybe you’re talking to a more experienced programmer. Maybe you’re talking to a peer who you think has made more progress than you.

If you want to make sure your questions are thoughtful, I encourage you to allow your curiosity to form your questions.

If you’re talking to more experienced engineers, ask them questions about their most recent project. Try to understand what makes them great engineers and how you can follow suit. I’ve used this tactic before and, to my surprise, came out with a coding mentor.

If you’re talking to peers who’ve made great progress, ask them what encouraged their most recent progress. Celebrate them. Their response will surprise you. They’ll point you to the same resources that have helped them. They’ll want to help you experience the same success they achieved.

Strategy #6: Master Google Search

If you find yourself coding by yourself and doubting your skills, start Googling questions. When I did this I searched for phrases like “how to become a better coder,” “coding problems for beginners,” and “simple coding exercises.” Those Google searches not only led me to discover problems I could solve with ease but also to problems where I was in over my head. In the end, my programming skills improved because I had a better understanding of where I stood as a programmer.

The best part about Google search is that it’s always within reach. You don’t have to leave your workspace, and you have a wealth of resources at your disposal. Whether you’re with people or by yourself, you always have the ability to grow.

Strategy #7: Listen, Listen, Listen

Finally, when in doubt, listen. When I was at the Python meetup, I took time to listen. When I wasn’t asking questions, I paid attention to what the other coders were saying. I also watched how they approached problems. I was able to understand how great programmers communicated and that writing problems on a whiteboard was a helpful visual for solving problems.

Everybody Doubts, But You Can Learn From It

All in all, it’s OK to experience intimidation or a lack of belonging. It’s OK to experience impostor syndrome. Your programming journey is your own. It’s not about other people and how much better — or worse — their skill sets are but about finding ways to grow your own skills. If you find yourself becoming weary, check out a great article on emotional self-care for programmers.

We discussed the surefire methods for how to recognize when you’ve given in to impostor syndrome. We also talked about seven effective strategies for overcoming feelings of intimidation and uncertainty. The journey is long, but worth it. I guarantee you will encounter impostor syndrome again at some point in the future. The biggest encouragement I have for you is that even expert coders still experience doubt, uncertainty, and illegitimacy. The goal is to learn how to manage it—that’s how you overcome it.

Keep learning and keeping coding. I’m rooting for you!

The post You’re Not a Fake Programmer, That’s Just Impostor Syndrome appeared first on Simple Programmer.

]]>
Why You Are UNDERPAID As a PROGRAMMER https://simpleprogrammer.com/underpaid-as-a-programmer/ Thu, 03 Sep 2020 14:00:44 +0000 https://simpleprogrammer.com/?p=37032 Today I’m going to give you all my secrets to a more profitable career in software, and they’re not very secretive, but they’re going to be common sense. Ways that you can raise your salary and make a lot more money. And there are no tricks involved here. I am constantly amazed by how many...

The post Why You Are UNDERPAID As a PROGRAMMER appeared first on Simple Programmer.

]]>
Today I’m going to give you all my secrets to a more profitable career in software, and they’re not very secretive, but they’re going to be common sense. Ways that you can raise your salary and make a lot more money. And there are no tricks involved here.

I am constantly amazed by how many programmers are underpaid. And they don’t even realize it.

How many developers are calling themselves junior developers when they actually could be getting a job as a senior developer.

The post Why You Are UNDERPAID As a PROGRAMMER appeared first on Simple Programmer.

]]>
What Does It Take for Programmers To Become Growth Hackers https://simpleprogrammer.com/become-growth-hackers/ Mon, 16 Dec 2019 15:00:18 +0000 https://simpleprogrammer.com/?p=35179 You obviously know what a programmer is, but a “growth hacker,” is that even a real job title? Why, yes it is! It goes without saying, every business shares a common desire for growth regardless of the industry. And today, the competition in any software industry or niche is absolutely cutthroat. So much so that...

The post What Does It Take for Programmers To Become Growth Hackers appeared first on Simple Programmer.

]]>
You obviously know what a programmer is, but a “growth hacker,” is that even a real job title? Why, yes it is!

It goes without saying, every business shares a common desire for growth regardless of the industry. And today, the competition in any software industry or niche is absolutely cutthroat. So much so that for many industries, especially in the SaaS and e-commerce space, it necessitates the existence of this relatively new title.

As a programmer, you already have a great foundation to transition into this exciting role because your coding knowledge will come in handy during real-time website tweaking (more on that later).

In other words, there are only four key skills you’ll need to add to your arsenal if you’re serious about making this transition. But first …

What Exactly Is a Growth Hacker?

In his blog post titled “Find a Growth Hacker for Your Startup,” Sean Ellis, who first coined the term in 2010, described a growth hacker as “a person whose true north is growth.”

What Ellis meant is that a growth hacker’s every decision should be focused on the growth of the company, and that decision should be truly informed. The most effective growth hackers (from, say, Airbnb and Dropbox) have been able to steer startups through various stages until they are large-scale enterprises, using straight-up ingenuity.

A growth hacker’s primary job involves scrutinizing how every activity a company does is going to influence its growth. Growth hacking involves traditional and nontraditional approaches to improve the growth rate and market adoption of a company’s product or service.

Experimenting with a variety of ideas and focusing on the ones that are most feasible and scalable is what growth hacking essentially is.

A Growth Hacker Is Not Another Marketer

People often confuse the role of a marketer and a growth hacker. Yes, there is quite a bit of overlap between the roles of a marketer and a growth hacker, but no, they’re certainly not the same.

Both must have the fundamental skills to help a business move forward, but a marketer has a broad focus across several aspects of the business, whereas a growth hacker is solely focused on growth.

To rephrase Anton Ego’s remark in the movie Ratatouille:

“Not everyone can become a great artist growth hacker, but a great artist growth hacker can come from anywhere.”

You could say that the only thing required to become a growth hacker is an unadulterated passion for growth. Nothing else matters. To quote Aaron Ginn, former Head of Growth at StumbleUpon:

“Growth hacking is more of a mindset than a toolkit.”

Put differently, practically anyone can become a growth hacker, from coders and designers to project managers and testers. Your background doesn’t make as much difference as your mindset.

Still, as a programmer aspiring to switch into the role of a growth hacker, you’re curious as to what exactly it takes for a successful transition. Well, the good news is that …

Programmers Already Have an Edge to Become Growth Hackers

First off, know that a growth hacker doesn’t have to be a coding guru, but knowledge of programming (Python) and web languages such as HTML, CSS, and JavaScript will definitely be a big plus.

Your coding experience will enable you to experiment with different things on your company’s website (A/B testing) without having to rely on a developer all the time. If you identify something that needs experimentation for possible improvement, you’ll be able to make modifications without having to wait for your request to be processed by the development team.

With real-time changes, you can get answers quickly and achieve faster growth than if you have to wait around for someone else to help you out.

But, as you’d expect, there’s a lot more to the life of a growth hacker than just website experimentation. For a successful transition into this role, there are four skills you must possess to start off on the right foot: copywriting, outreach, design, and project management.

Copywriting

A high-quality website, email, and landing page; and high-quality social media feeds are pivotal to business growth. You need to be able to create good content, also known as copy, because poor copy can be a major deterrent in achieving the growth milestones you’ve set.

As a growth hacker, you need to know what good copy looks like. You should be able to edit mediocre copy and transform it into something that’s a joy to read (while conveying the message effectively).

So, what constitutes good copy? In a nutshell, good copy is:

  • persuasive — it encourages the reader to take action.
  • conversational — it talks directly to the audience (using “you” and “me”).
  • easy to understand — it does not use complex words, long-winded sentences, or jargon.
  • engaging — it tells a good story, using examples with a touch of humor, without beating around the bush.

Outreach

To grow a startup, you need to get your product or service in front of as many people as possible. The internet is already brimming with other websites, blogs, and influencers that have massive followings.

You’ll need to know how to leverage those sites and influencers to drive interested leads and potential clients over to your website. Hunting down and then strategically contacting these websites is known as outreach. It involves scouring the web for relevant sites of high-quality and authority to target before crafting engaging outreach emails to grab their attention and get them to collaborate.

Offering high-quality content is a great way to get them to cooperate. Bloggers, in particular, are always on the lookout for good content to add to their blogs. With just a single meaningful collaboration, you could witness a huge influx of traffic and subsequent conversions over to your website.

Thus, the ability to outreach effectively is a must-have skill for any growth hacker worth their salt.

Design

As a growth hacker, you obviously don’t have to be an expert in design, but basic design knowledge can go a long way in helping your company grow fast.

If information isn’t displayed in an appealing and user-friendly manner on your startup’s website or app, people aren’t going to stick around.

You must know the fundamentals of interaction design, user research, and usability testing. At the very least, you need to have a knack for thinking from the user’s perspective.

With fairly strong UI and UX design skills, you can present sound recommendations on the different design elements of the website or app so that they accurately reflect your business and generate revenue in the long run.

Project Management

Project managers play a big role in business growth, especially for product-based startups. They help bridge the gap between different teams, ensuring that the least amount of resources are used to produce maximum results and the product is shipped on time.

With project management skills, such as budgeting, leadership, and negotiation, you’ll be able to use your startup’s resources more efficiently and cost-effectively, which translates to better and faster growth of the company.

Break the Rules

You don’t need to be adept at all of these, but as a growth hacker, you need to be a jack of all trades. You need to be shrewd and do whatever it takes. For instance, be bold and take calculated marketing risks with social media content — who knows, it might just go viral and get your startup that much-needed exposure.

With an average starting salary of nearly $85,000 (according to PayScale), becoming a growth hacker can be quite lucrative. But you may not be able to find a job as a growth hacker just based on your programming skills. Don’t worry. Start building your growth hacking portfolio by being a self-employed growth hacker. Work on growing your personal brand until you are able to prove to potential employers that you know your stuff.

You might presume that growth hackers can’t work remotely, but that’s not the case. Yes, you can be earning extra as a programmer from home. Likewise, you can earn extra as a part-time remote growth hacker, too. There are plenty of new opportunities opening up every day on LinkedIn and dedicated platforms.

Growth hacking doesn’t come with a fixed set of rules or job description. It demands you to think outside the box and unleashes your crafty creativity. It’s all about your mindset and your ability to hustle.

If you like the idea of helping companies grow, you’re already on your way to being a growth hacker. Your programming experience gives you a foundation; by working to develop your skills in writing good copy, reaching out and making connections, learning basic design, and being a program manager, you can easily take on this new challenge in the software field.

The post What Does It Take for Programmers To Become Growth Hackers appeared first on Simple Programmer.

]]>
First Year as a Programmer: Mistakes and Outtakes https://simpleprogrammer.com/first-year-programmer-mistakes/ Mon, 18 Nov 2019 15:00:51 +0000 https://simpleprogrammer.com/?p=34753 There is a saying that every programmer is shaped within their first year of professional experience. Although I believe that you can reshape yourself (with significant effort) after the first year, it is indeed crucial to your success. I began my first job in the second year of my four year bachelor’s degree. I started...

The post First Year as a Programmer: Mistakes and Outtakes appeared first on Simple Programmer.

]]>

There is a saying that every programmer is shaped within their first year of professional experience. Although I believe that you can reshape yourself (with significant effort) after the first year, it is indeed crucial to your success.

I began my first job in the second year of my four year bachelor’s degree. I started at the end of my third semester (early December) working part-time and then awkwardly switched to working an average of 10 hours a day, six days a week during the summer.

While at this job, I learned a lot about the ins and outs of the business. Most of this learning was, unfortunately, done through me making mistakes and having to go back and correct them. This cost me time I could’ve been using elsewhere to better my skills and my professional reputation.

Let’s dig into my first year as a professional software developer to see the many mistakes I made and how you can have a better start for the sake of your professional growth.

First Year Mistakes I Learned From

I got my first job rather easily—it was the only interview I went to. One late night, I sent out several CVs to companies looking for junior developers. About two weeks and several stages of interviews later, I got the job.

Almost instantly, I started making countless mistakes that severely hindered my professional growth.

Being Overconfident About My Knowledge

Needless to say, I had no prior experience with real projects; I had never built anything that was deployed and used by actual people.

My projects to that point had consisted of several classes that usually took their input from the terminal console.

No databases. No external systems. No external APIs. No configuration.

In my defense, one year earlier I had had no idea how to write “hello world,” but that didn’t make my day-to-day tasks easier.

To make things worse, I didn’t know how to navigate large code bases, how to ask the right questions, or how to get people to lend a hand without annoying them. It wasn’t the start I had been imagining. 

Looking back, it’s pretty funny that I thought I would be crushing it. It was a very pure moment of programmer arrogance.

How did I fix it? 

Hard work. Remember the 10 hours a day, six days a week I mentioned? That was my summer vacation. I’d say I came out a decent programmer. The alternative was to spend one to two years grinding part-time to get to that level, but boy oh boy was it hard. I didn’t enjoy it, but found it extremely necessary.

Waking up, going to work, getting home from work, eating a TV dinner, and going to sleep almost every night isn’t fun, trust me. If I could do things over, I simply wouldn’t put myself in that sort of position.

Certain aspects of the job I thought would be important to study and understand beforehand ended up being less significant when it came to actually applying them. 

Don’t get me wrong, algorithmic one-shot types of questions will definitely be on the interview and preparing for them will get you through the door, but this is only the beginning.

Other than personal projects, if you can afford it, don’t rush getting your first job until your skills are relatively developed. Your first year, the majority of your time will be spent not only working on the project but also learning all the tools, frameworks, and libraries the company uses. Learning the basics of git in advance is an often overlooked opportunity to make a good impression.

Lack of Soft Skills 

Let’s cut to the chase—I didn’t have the proper soft skills.I didn’t know how to ask the right questions. I didn’t know when to interrupt people, how to write emails that add value, or how to work with people.

The result was my productivity going down the toilet. I wasted my time doing the wrong things, having to redo them, and needing way more help than I would have if I had known what to ask.

It felt soul crushing.

However, I knew that although people were tolerant and understanding, this wouldn’t last forever. I had to act.

John Sonmez’s book on soft skills wasn’t written at the time, so I had to scramble around for information. This process was painful, but in a few short months, I managed to fix all the major issues.

The biggest one I faced was that often my emails didn’t have enough details. I fixed this by imagining that the person who reads the email has no idea what I am talking about and knows no specifics.

Even though the people who will read the email sometimes do know all the details, the reality is that most technical people read emails in between their tasks, which means they aren’t necessarily thinking in the context of your email, so the details may help them remember things faster and prevent them from making mistakes.

Putting yourself in other people’s shoes can help you provide others with enough value to make it easy, almost criminally easy, for them to do the work you need them to do. 

Not Looking After My Interests 

As a junior, my mindset was “do whatever, just get better; learn as much as I can, whatever the cost.” This is a good way to move fast, but you must be wary not to burn out.

For me this was the projects and impact I was working on. Clearly, as a junior you can’t be given too much responsibility or impactful tasks, but even simple tasks can be spun in a way that can benefit you and help you learn. 

Personally, this went on for the better part of a year before I was able to talk to my boss and start getting more impactful work. 

I was in no way ready to make those decisions on my own, but my boss mentored me, and little by little I started making changes by myself.

The second biggest way that I see first year developers not looking after their own interests is that people aren’t looking after their health when working—taking overtime, not getting up from the chair often enough, not drinking water, etc.

Luckily, this is something that can be taken care of rather easily. Set a timer for every 40 minutes or whatever is convenient for you, and get out of your chair. Take a couple of minutes to walk around and let your eyes rest. Drink some water.

Take care of yourself and your career. You are your responsibility.

The First Year Is Your Foundation, But You Can Rebuild

Let’s say you’ve been at a bad place in your first year, or you already have decades of bad habits formed early on. How do you improve?

There are certainly some challenges, but I believe that anyone can do it.

If you want to improve at anything, there is one specific thing you need: Time. Large chunks of it, preferably uninterrupted.

Do you have that? OK, good.

The next thing to ask yourself is “How does one improve their foundation?” 

There are a few key factors. 

First of all, you need to be open to change. You need to accept that some of the habits you’ve developed are wrong and that you need to hone your craft further.

Second, you want to review your work and see what can be improved upon.

There is no golden rule about pinpointing your weak points. You may have to use a rulebook as a reference to test your code against. This can be a tricky step, since a bad rulebook could actually have a negative effect on you. 

A mentor will help, but this isn’t realistically possible for many people. 

Remember, learning is an iterative process. If, for example, you want to improve the quality of your code, and you pick a rulebook, chances are you will have to go over it several times before you can start adopting its practices.

Automation is always your friend, and you should use it if you can. Enable all code linters, style checkers, and the like! It will help you notice mistakes as you write them.

Lastly, don’t give up. Improvement takes time. Focus on improving, and don’t rush yourself. You’ll get there, I promise.

Be Prepared

Whatever your first job throws at you, be prepared. If you fall, get back up. Remember that gaining experience and seniority is a process. It will take time, and you will surely make the occasional misstep or mistake along the way. 

So don’t worry. Take your time, learn the necessary requirements for the job, gain some soft skills, take care of your personal health, and above all else, be patient.

Success takes time. It takes hard work and constant commitment. Hopefully, these tips will help lighten the load for you and help get you started down a healthy and very successful path.

I believe in you. Don’t forget to believe in yourself, too.

The post First Year as a Programmer: Mistakes and Outtakes appeared first on Simple Programmer.

]]>
Better Late than Never: Finding Inspiration from Other Developers’ Life Stories https://simpleprogrammer.com/inspiring-developer-story/ Fri, 01 Nov 2019 14:00:41 +0000 https://simpleprogrammer.com/?p=34610 Social media and the internet have made this world a smaller place to live in. We meet all different kinds of people online, doing all kinds of jobs, and living very different lives.  Being a Software Engineer interested in progressing in my profession, I’ve met a number of talented programmers online. Their achievements and success...

The post Better Late than Never: Finding Inspiration from Other Developers’ Life Stories appeared first on Simple Programmer.

]]>

Social media and the internet have made this world a smaller place to live in. We meet all different kinds of people online, doing all kinds of jobs, and living very different lives. 

Being a Software Engineer interested in progressing in my profession, I’ve met a number of talented programmers online. Their achievements and success stories are enough to either motivate you or intimidate you. Some of these programmers even started programming at the age of 6! When I found that out, I immediately thought, “That’s not what happens in my country.”

In India, there isn’t a culture of doing what your heart desires. The truth is that children aren’t groomed to decide for themselves what career they want. Instead, the culture is to follow what’s in trend. 

Half the computer developers in India exist because computer science is trendy, not because it’s their passion. That is the reason why children aren’t motivated to start early.

I was a bit different, though. Hearing stories of programmers starting young motivated me. There are two ways to take success stories like these: 

  1. You could be intimidated

OR

2. You could be inspired 

I chose the latter, and as Robert Frost said, “that has made all the difference.” Seeing successful older developers lit a fire inside me to be like them, not run away from them.

There’s a lot of power in other people’s journeys to becoming a coder—you can learn about perseverance, diligence, and motivation. Reading about another person’s approach to a problem can offer you unique tools to deal with a similar situation.

Let me share with you my story of becoming a coder. This way, I can hopefully inspire you to learn from not only my early mistakes as a programmer, but also from my subsequent smart decisions.

Keep an Eye on Your Real Goal

I was 16 years old when I knew I wanted to be a computer engineer (that’s what it’s called in India). A computer engineer is someone who is initially taught about all the fields of engineering and then gets taught about computers. 

Pretty confusing, right? Well, that’s just how it goes in India.

The only problem was that I didn’t know how to start. I didn’t have a clue, and I didn’t even think to Google it. I simply did what everyone else was doing—I studied for the All-India Engineering Exam for acceptance into college. I thought that, then, I would start to study computers. 

To be completely honest, I didn’t even know what programming was back then. I just knew I had to score well on the engineering test to get accepted into college.

Upon reflection, there is so much I would change about that time if I had the chance. The first thing would be my decision to study endlessly for that engineering test, rather than focus my energy and efforts on studying what I was planning to do for the rest of my life: programming. 

Here’s the first thing you can learn from my story: Always keep an eye on your actual goals, what you really want, not what you guess might get you there. You might not even know how to reach your goals, but in this day and age, lack of guidance should not be an excuse. With the internet at your disposal and your mind set on a goal, you can aim straight at the bull’s-eye.

You Won’t Necessarily Be as Skilled as Others, and That’s Alright

In my school, we had a chance to opt for one of two subjects for the two years before college: information technology (IT) or physical education (PEd). PEd was easier to score in, so I opted for that. Yeah, the irony … I know.

I did not take the subject I was working to achieve. I thought, “It’s okay, I’ll study it in college.” I did score well enough on the All India pre-engineering test to get into a computer science course at a decent college, but life was only getting started. 

I still remember my first computer programming class where we were given a simple C code to write: 

  • Problem no. 1: What is this codeblocks?
  • Problem no. 2: What is this printf?
  • Problem no. 3: What’s C again?

Half of my class had a background in IT, whereas I had chosen to play football in PEd. As a result, they easily wrote the code that was given to us, while the other half, including me, was left with blank faces. We didn’t have a clue of what was going on in the class. 

I’d never been so embarrassed in my life.

You, too, will face similar situations in your coding career. Inevitably, there will come a day when someone else will know something you don’t. It might cost you your pride. It might cost you a promotion. It might even cost you your job.

But what you do after such debacles is what’s truly important.

Learn to Bounce Back

The next day, I typed into the YouTube search box the following query: “C for beginners.” I found a course by the NewBoston and spent the next couple of days locked in my room learning the basics. 

I won’t lie, it was hard. It was like nothing I’d ever done before, but all I knew was that I had to do it. Classmates of mine had an advantage over me, and I knew I had a long way to go. That actually became the fuel for me to start studying, hard and fast.

I studied daily—and by daily, I really do mean daily—for the next four years of my college career. By the end of those four years, I was in a better place than the majority of my classmates. 

This included those who had studied programming beforehand! 

What got me so far? What got the guy who couldn’t press a single key on his first day in class to a position much better than any of his peers? I can break it down into three important things: hard work (you won’t succeed without it), grit, and—what made the real difference—consistency. 

Your Age Doesn’t Matter, but Consistency Does

Now, I can’t stress this enough: The most important tool for success in your coding career is consistency. You might be super talented or work super hard for a month or two, but if you really want to greatly increase your chances of success, then work consistently—day after day, month after month.

Those two years that my classmates had on me were gone by the end of college because I had a stronger hustle and stayed consistent. Now, it isn’t just about those two years—this was just an example. As I told you, I’ve met people who started programming at age 6! 

It’s great if you start early, and I would surely recommend that everybody choose their path in programming early and focus on it. However, there are great developers who started off in their 30s and even 40s. While I know programmers who started at age 6, I’ve also met programmers who started at 37 and are doing much better than the ones with years of formal education. 

Having not started very early myself, all I’ve got to tell you about starting late is that it’s okay, and that you are in a field where your age doesn’t matter.

It never will, as long as you are consistent.

Don’t feel overwhelmed by people the same age as you who have more experience; it’s not the end of the world. You can be inspired by them, but don’t let their success intimidate you. Maybe they were early, but that doesn’t mean you’re late. The truth is, it’s never too late. 

In Hindi, there’s a saying that goes, “Jab jaago tabhi savera,” which translates to “Whenever you wake up, then it’s the morning.” So, never repent starting something late in life. Always take it as a challenge and, as I said, it’s about consistency, not age.

Learning Is a Never-Ending Process

A quote attributed to various people over the years is “Learn from the mistakes of others … You can’t live long enough to make them all yourself!”

It might be tongue-in-cheek, but that doesn’t mean it isn’t true. There is a lot to learn from mistakes, our own as well as others’. Each story can be an inspiration to rethink our priorities or refocus our efforts.

The embarrassment of an error lasts only for a few seconds. Learning from it can be forever.

Reading stories is great, isn’t it? You know what’s even better? Creating your own. Just remember that you won’t have a success story overnight or in a couple of weeks—it’ll take time and a whole lot of hard work. But trust me when I tell you this, “The juice is worth the squeeze” at the end.

The post Better Late than Never: Finding Inspiration from Other Developers’ Life Stories appeared first on Simple Programmer.

]]>
Apply For Programming Jobs You’re NOT QUALIFIED FOR https://simpleprogrammer.com/apply-jobs-not-qualified-for/ Thu, 24 Oct 2019 14:00:31 +0000 https://simpleprogrammer.com/?p=34626 I often coach newbie Software Engineers straight out of coding bootcamps on how to get a job. Usually, they spot the perfect job posting. They get delighted by that job and they are, indeed, a perfect match for the role. HOWEVER… There is a small “BUT”. The programming job posting need, at least, 5 years...

The post Apply For Programming Jobs You’re NOT QUALIFIED FOR appeared first on Simple Programmer.

]]>
I often coach newbie Software Engineers straight out of coding bootcamps on how to get a job.

Usually, they spot the perfect job posting. They get delighted by that job and they are, indeed, a perfect match for the role.

HOWEVER… There is a small “BUT”.

The programming job posting need, at least, 5 years of programming experience.

A lot of my students almost give up when they see this. They feel like they’ll never get a job.

This is when I present them with the 5-year-rule.

Today I’m going to tell you why you should apply for jobs that you’re NOT QUALIFIED FOR and how it makes a difference.

My name is Jason Humphrey. I help bootcamp students get their first professional, high paying job right out of the gates.

Do you ever find yourself just kind of browsing the job market, looking for that next developer job? Or, maybe you’re coming out of a bootcamp, and you’re looking for that next job. And, as you’re going through the job list and you’re like, “Man, that’s a really good job right there. I really want it. That is for me. It’s everything I want to be doing,” to only scroll to the bottom and find out that they want five years of experience. And, as you’re looking at it, you’re just like, “Damn, it’s never going to work. It’s too damn bad.” It feels pretty terrible when you find that job that you just aren’t qualified for it, or at least you think.

Today, I want to cover the five-year rule and tell you about it, because I get this question all the time about where or when should I apply or when shouldn’t I apply when I see something I feel unqualified for?

Now, this five-year rule applies to everybody, but I’m going to be specifically talking to bootcamp students today because this is where I get the question asked most.

The five-year rule just states this, you apply to anything within five years of your experience level. What happens a lot is bootcamp students will come to me and go like, “Look, I’ve got zero. How am I qualified for a five-year job?” And, you’re right. You’re absolutely not.

I’ve opened up two wrecks on my team, where I opened up to mid-levels. And, so I was hoping that I could get two pretty high quality workers in to get a good amount of work done, work on the front-end, work on the back-end and kind of crank out the code base and get going.

No highly qualified mid-level developers were applying. What I was getting was I was getting a bunch of young associates applying, people who had like two years, maybe one year experience, applying to become a mid level developer and it just wasn’t working out. I wasn’t getting what I was hoping for because all of the mid-level developers wanted to become senior developers. I wasn’t getting what I was looking for.

So, what I did was I dropped one position to be an associate or junior level developer, and I upped the other one to be a senior level developer. I was taking in resumes at the mid-level, but if any of those people applied when I dropped the one to a associates level, well now I have 200 resumes to instantly go back through. I don’t have to wait two to three weeks.

You never truly know what’s going on behind the scenes. You never know what type of talent they’re getting in. So, what’s holding you back from applying for something within a five-year span? So, I encourage you to always apply in that five-year mark, but that’s not the only reason.

When you apply to these five years and under, you can get called in regardless of your experience, even if it’s a higher level role because some of these jobs, especially startups, are willing to take a chance on a person that has the quality, the character, the work ethic over someone who has the experience sometimes. And, this happens because the type of culture they built, they’re building for a specific person, not a specific output always.

It’s important that not only you are applying because of the situation that might happen, but also because of the culture and the people they’re looking for. I’ve seen it time and time again, and I encourage you to do it because you could go in there and impress them, and then what they’ll ultimately do, potentially, if it’s a five-year job, if they truly like you, they can always bring the role down.

It’s harder to bring the role up and to add budget to a developer role, but it’s a hell of a lot easier to bring the role down and to bring the budget down and pay less for someone you like and that you want to grow on your team.


Once you get past five is when you get to people really looking for a senior role. And, up generally has some type of leadership experience, some type of architecture experience, database management, something in there that’s extra. And, that’s where past that, I’ve seen a lot less callback rates from the people that have applied that I know have done that in the past.

So, that’s why for a long time, I’ve been sticking with that five-year mark because as soon as you get past that five years, it drops off like crazy. And, I prefer to play the numbers game correctly in the sense of keep as high as I can for as long as I can, and that’s that sweet spot right there.

I encourage you today to apply with anything within five years of your own experience because you never know what’s going to happen. You never know what the situation is going to be or what they’re truly looking for until you apply.

The post Apply For Programming Jobs You’re NOT QUALIFIED FOR appeared first on Simple Programmer.

]]>
Top 5 Things to Ask Your Future Employer Before Accepting an Offer https://simpleprogrammer.com/5-things-ask-future-employer-before-accepting-offer/ Wed, 26 Jun 2019 14:00:15 +0000 https://simpleprogrammer.com/?p=32170 So, you’ve passed the Software Engineer interview and are looking at a job offer from a potential future employer. The company has shown you its best side, the remuneration is good, and the benefits are decent. Yet you aren’t quite sure whether you’ll be able to reach the next level with this Software Engineering job....

The post Top 5 Things to Ask Your Future Employer Before Accepting an Offer appeared first on Simple Programmer.

]]>

So, you’ve passed the Software Engineer interview and are looking at a job offer from a potential future employer. The company has shown you its best side, the remuneration is good, and the benefits are decent. Yet you aren’t quite sure whether you’ll be able to reach the next level with this Software Engineering job.

How can you be certain that this should be your next career move?

It often feels that when you are considering an offer from a lesser-known company, it is the luck of the draw that determines if the company is legit and worth working for, or a complete mess, right?

Wrong!

Information online for small and mid-sized companies is usually outdated, sparse, and sometimes nonexistent.

However, this doesn’t mean there is nothing you can do about it.

The recurring theme in this article will be if your future employer answers at all and how they’ll answer. Some of these questions are hard and may reveal problems the company is initially trying to hide.

If possible, talk to a developer from the team you will be working on.

You shouldn’t talk to an HR person. The team lead will suffice, and you are looking for answers related to the position you will be working on.

You want to do this before or after getting an offer—but you should know that you’ve passed the interviews. Don’t bother asking these questions unless they like you for the position, since you will likely have to meet again or at least have a phone interview.

In this post, we’ll discuss some powerful strategies and ways to get information about such companies to help you decide whether working there would be a good career choice for you or whether it would be best to keep looking.

If you are interested in articles on how to pass the actual interview, here are some general tips and some for the often overlooked behavioral interview, or if you prefer books—try this one.

Ask What Open-Source Contributions the Company Has

For one thing, you should expect the developers to have open-source projects or contributions.

For another, everyone uses open-source nowadays. A small percentage of company time can be dedicated to open-source projects.

Alternatively, certain company-built libraries can be open sourced. Most big companies have a variety of open-source projects, and if the company has none, it speaks volumes about its culture.

Don’t get me wrong—I understand that companies exist to make money. But when you are making money on top of open-source languages, frameworks, databases, servers, encryption protocols, etc., it sends a message about poor company culture if all you do is take and don’t add value to the foundations of your business.

Example question: “I see you are using [name of open-source project, e.g., MySQL]. Do you have any open-source projects in the company, or are you donating to it?”

Watch out for: “We are considering it”—99% of the time, it means “we won’t ever do it, but nice try.”

Ask About the Company’s Bug-Fixing Policy

How long do they wait before fixing mid-tier and minor bugs? The more they wait, the more technical debt is likely to exist in their system. Feel free to ask them concretely about what types of bugs they have hanging.

This is one of the questions where they may refuse to give specifics. That isn’t necessarily a red flag since there may be some nondisclosure issues. However, if they do give examples, it speaks volumes about the company’s transparency and their willingness to work with you. Most importantly, it sheds some light on the amount of technical debt the project has.

Example question: “Can you give me an example of an existing bug that is too minor to fix immediately?”

Watch out for: Anything that may become an issue if something in the setup has changed. For example, some padding issues in the mobile version are ugly, but the problem is ignored because the user base may not be mobile. However, using a deprecated function in a library will cause major issues upon upgrading and is the definition of technical debt.

Ask About the Company’s Code Quality Policies

Quality code is relative and ambiguous—though this is to some extent language-specific. What you should be looking for here is something along the lines of:

  • Do they have a style guide?
  • Do they use linters and validators?
  • What are the steps in a code review? (There should always be a code review.)

This is a good time to consider whether things are done as a team or individually—there isn’t a right or wrong answer in terms of that; it depends on what you prefer. If, however, the reply to any of the questions above is “no,” that is a red flag.

The less detailed the code review and the less constraints on what design patterns, algorithms, or programming paradigms to use, the more freedom you have when developing.

Don’t get me wrong; there should be some sort of review, but if you feel you can carry more responsibility, you can opt for a company with a less strict code-review policy.

There is nothing wrong with having more thorough code reviews and sharing the responsibility collectively. The reality is that both types of companies exist, and you should be in a company in which you thrive.

Example question: “What linter do you use, and is your style guide fully implemented in it? Can you give me an example of how a code review is performed?”

Watch out for: “We depend on discipline” and anything that isn’t formally written. This leaves room for interpretation, which wastes time.

Ask How They Validate the Quality and Validity of a Feature

This, in layman terms, means how quality assurance (QA) is done and how the decisions left to the developer are evaluated.

The procedure here is different for every project, depending on scale, delivery type, etc. The details aren’t important, as they are likely to change. Rather, what’s important is that:

  • There is a procedure in place.
  • People follow this procedure.

There must be a clear QA procedure as to who tests the product and how, as well as when and how (if at all) any automated tests will be done.

Lack of QA is disastrous. Even the most detail-oriented person makes small mistakes every now and then. Although critical bugs should happen very rarely, they will happen. Most of them can be avoided by having another set of eyes look at the validity of the feature.

Although automated tests are almost universally agreed upon, few companies actually have them. A company’s having them reveals it’s dedicated to delivering reliable software.

Example question: “What is the QA procedure? What type of automated tests do you write?”

Watch out for: “Developers do QA. We don’t have automated tests and don’t plan on having any for any foreseeable backlog.”

Ask About the Company’s Deployment Pipeline

Despite having wonderful options and dozens of ways to implement deploys with zero downtime, this is often not the case—and you shouldn’t necessarily look for it.

What you should be looking for is automation. It will be better if they don’t use a homegrown solution, since, as mentioned above, there are already several great options. Homegrown solutions tend to lack documentation and features.

Still, as long as the deploys are robust and automated, the company is on the right track in terms of operations.

Another thing you should look for is whether the deployment can easily be rolled back. Sometimes a critical bug that wasn’t caught during QA does get deployed, and there should be a way to do this without having to change the head of the source code control repository.

As most questions have revealed so far, it’s a matter of company culture. If the operations of the company are done manually, this likely means that most of the development processes will be manual as well. Manual labor is proven to be error-prone, slow, and unreliable when compared to automated tasks.

Example question: “What tools do you use for automatic deployment? Can you rollback a version?”

Watch out for: Anything manual. Anything that can’t be reproduced or isn’t logged.

Bonus Question: Ask If You Can Use a Fraction of Your Working Hours to Study and Improve Your Skills

Although I support the “you are responsible for your own skill set” mentality, it is always nice to be able to do a part of it in the office.

How much of your time you should spend on developing your skills is a long conversation, but you have to do it if you want to easily advance in your career. Companies that invest in their employees are among the best companies with the most engaged workforces.

If there is a dedicated time for you to work on something extra, you can work on the company’s open-source project, take a course, or just read and try out some new tech.

In some of the companies I’ve worked for so far, you had up to one hour per day—five per week; two full days per month—which needed to be scheduled beforehand.

If the employer doesn’t want to invest in the developers, that is perfectly valid. After all, they aren’t paying you to improve yourself. It does, however, beg the question of whether you will progress in your career or not.

Example question: “Does the company have subscriptions to any learning platforms? Is it OK to take a bit of time to learn new things on the job?”

Watch out for: Vague replies, avoidance of the question. Anything that isn’t concrete or that speaks about a point in the unforeseeable future most of the time will mean “Your time here is to work exclusively on our projects.” Another thing to lookout for is when the employer says “I haven’t thought about it.” This is arguably one of the worst things that can be said, since it shows lack of interest on the employer’s side to invest in the developers or shows just the boss’ plain ignorance of how software development works.

It’s About Preparation, Not Luck

Before accepting a new job offer, make sure that you know what you are getting yourself into. There is no point in losing time and opportunities to work for a company that doesn’t suit you or your goals.

There is a shortage of skilled developers, so make sure you secure a job with a company you will be happy to work with and feel you can add real value to.

The post Top 5 Things to Ask Your Future Employer Before Accepting an Offer appeared first on Simple Programmer.

]]>