DEV Community

Cover image for 19 Tips For Software Engineers In 2019
Emma Bostian ✨
Emma Bostian ✨

Posted on

19 Tips For Software Engineers In 2019

It's almost 2019 and there are some amazing things coming down the pipeline in the world of programming. But for many new developers the prospect of jumping into a career in coding can be intimidating.

There are so many technologies to learn and so many languages to choose from. Thus, I've compiled (no pun intended) a list of 19 tips for software engineers in 2019.

Happy coding 🤩💻

1. Don't get discouraged

The technology industry is one of the most intense and volatile industries out there, and it can be overwhelming to jump into. What I try to remember each day is that everyone, at some point in their coding career, started where I did. All of the industry leaders in tech were once beginners.

Do some people learn faster than others? Yes. But you can't let that discourage you from getting started.

Coding careers are desirable for a very good reason: you can teach yourself anything on the internet... for free! And often the lifestyle which accompanies a career in tech is much more comfortable than other careers.

It's important to keep in mind that, while there are a plethora of resources out there, you don't need to learn everything. Start with the basics.

The first step is to decide whether you'd prefer to begin your career in front-end (the user interface of the application you interact with) or back-end (working with data). Once you choose your niche, start with the basics.

If you've selected front-end development, hone in on HTML, CSS, and JavaScript. Don't take these skills for granted. While they may seem simple at first glance, a strong knowledge of the foundations of web development will land you your first role as a Software Engineer. Most companies would prefer to see a candidate with strong "vanilla" skills than a pretty good understanding of a popular framework/library.

If you decide to go the back-end development route, try out a language like Python or Java. These are highly coveted skills in the tech industry.

But do not get discouraged. You will have days where you feel utterly overwhelmed. Everyone began their journey where you did. It will get easier.

2. Learn to read & decipher code

One of the skills that I took for granted when I began my coding journey was the ability to read other developer's code. This is a truly important skill because it allows you to work effectively in many different code bases.

You don't need to know all of the nuances of a programming language in order to decipher what that code is doing.

There are many ways to learn how to read code. Check out some open-source projects. Read through the documentation and the source code and see if you can delineate what's happening. You'll slowly start to realize that there are improvements that can be made, and perhaps you'll even open a PR!

Learn to analyze the code and determine whether or not it was written in the most effective way.

Learning to read and review code is a skill that takes time, but is well worth the effort.

3. Find your method of learning

Humans learn in different ways. Some retain information best when they're writing code. Others learn best by reading or watching videos.

I prefer to watch online tutorials and read documentation in order to fill in the gaps.

I'm not the kind of person who can just start a sandbox application and code away. I like to follow a guided tutorial and then expand upon the ideas.

Find your method of learning. Try out different resources and platforms.

Once you find your learning method, you'll find that you learn much more efficiently.

4. Get involved in the community

I didn't join the online tech community until about 3 years into my coding journey. This put me at a huge disadvantage.

I struggled greatly with impostor syndrome and found it hard to stay motivated. But once I found a community of developers on Twitter and blogging platforms, I became much more invested in learning.

Find an open source project. Tweet your coding projects. Push your projects to GitHub. Find a way to get involved, and you'll quickly develop a more intimate relationship with coding.

5. Balance theory with practicality

In order to become an effective programmer, you must understand the theory behind certain paradigms (to a certain extent).

For example, if you want to understand why a nested for-loop is not as performant as two for-loops within the same scope, you need to understand Big-O notation.

We live in an age where you don't need a Computer Science degree to succeed in the tech industry. That being said, some of the concepts taught within a CS degree are extremely valuable (i.e. algorithms, run-time analysis, etc.).

You don't need to learn all of the computer science theory, but you should understand the theory of why one solution is better than another.

6. Don't compare yourself to others

Your career will never follow the exact same path as another developer. You should not compare yourself to others.

You are unique and the skills you offer will be tailored to you.

Just because one of the industry leaders is learning Ruby on Rails doesn't mean you have to follow suit. Find the skills that get you excited about programming, and learn them to the best of your abilities.

There is no expected time-frame in regards to learning a technology. As I mentioned in tip 3, people learn by different methods, and as such people learn at different rates.

Just because it takes you three months to learn JavaScript doesn't mean you're a worse developer than the girl who learned it in one.

7. Get involved in open source

The open-source community is thriving, so why not get involved? If you need a way to boost your code-reading skills, find an open-source project!

You can check out the GitHub Open Source community to get started!

You can even start your own open source project! I founded my own open-source project, Coding Coach, this last September, and it's been an eye-opening experience.

If you'd like to get involved and learn from some great developers, feel free to check it out!

8. Be comfortable with being uncomfortable

The tech industry is constantly changing, which means there is always a new skill to be learned.

While this can be intimidating at first glance, it also provides many opportunities to find a new technology to learn (how could you ever get bored?!).

The best way to grow in your coding skills is to tackle tasks that scare you. You can do this at work by volunteering to complete a challenging task. But you can also do this in your spare time with new technologies.

You have to become comfortable with being uncomfortable. You're not expected to have all of the answers.

9. Don't be afraid to ask questions

Eventually you will hit a problem that you don't know how to solve. Stack Overflow just isn't cutting it!

It's important to recognize when you need to ask for help. If you have tried to solve a problem, and gone down all viable paths, it's time to reach out for help.

Asking for help does not make you look weak; this is something that I still struggle with.

If you're spending hours trying to figure out why your variable is throwing a ReferenceError, ask for help.

10. Surround yourself with people who build you up

Coding is hard. You will have days where you don't feel cut out to be a Software Engineer.

Thus, you must surround yourself with people who believe in you. Find a core group of family or friends who build up your self-esteem, and say goodbye to those who don't.

11. Focus on one thing at a time

Multitasking is the quickest way to ensure mediocrity. Humans cannot effectively multitask.

Choose one thing to focus on at a time. Learn it, or complete it, to the best of your abilities. Once complete, move on to the next thing.

Do not try to juggle several topics at once.

12. See the bigger picture - how do all these technologies fit together

You will be learning many different technologies throughout your coding career. And it can be extremely confusing to determine which technologies solve what task.

I like to draw diagrams of complex problems. If I'm tasked with building an application, I like to break it down into domains. For example, I know I need HTML, CSS, and JavaScript on the front-end. Perhaps I'll decide to use React as a JS library. And maybe, if I need this application to scale, I'll choose Redux for state management.

Learn the best use-cases for different technologies. When would you choose one over another? How do they fit together?

These are important questions you should learn to answer.

13. Find your toolbox - which tools are the best for the job?

There are no shortage of tools available to developers these days. I can name at least five IDEs off the top of my head that I've worked with in the past.

The amount of tools available can be extremely overwhelming. Do some research. Determine which tool is right for you. Some questions you might want to ask are:

  • Is this tool being actively maintained?
  • Is there a thriving community of developers using it (in the event that you need help)?
  • How hard is it to configure?
  • Could integrating this tool have negative implications on performance?
  • Can I solve the task without the tool?

Just because a tool exists doesn't mean you need to use it.

14. Maintain a good work/life balance

You do not need to spend all hours of the day coding. In fact, to do so would be unhealthy.

You must maintain a healthy work/life balance, or you could suffer the consequences of burnout.

If you do something from the moment you wake up until the moment you go to sleep at night, you will quickly come to resent it.

By taking time for yourself, and your other hobbies, you'll maintain a healthy relationship with coding.

15. Learn the basics of design

If you're building an application that's user-facing, you should know the basics of design. I'm not saying you need to learn how to use Sketch or Adobe Illustrator, but learning the basics of UX Design will positively impact your applications.

You cannot assume a user will use your application in the same way that you would. In fact, you shouldn't make any assumptions about user behavior at all.

Understand the reasoning behind certain UI principles in order to determine the best solution for your application.

For example, it was found that buttons with square edges are actually better for users than buttons with rounded edges, as they contain more pixels.

Learn these basics, and you can be sure that your web app will shine.

16. Find a mentor

Finding a mentor is hard, but it's necessary. You can learn invaluable skills from career advice to coding best practices.

It never hurts to ask someone in the field, whom you admire, to mentor you. The worst thing they can say is no!

And remember to re-evaluate your mentorship as time progresses, to ensure that it's beneficial to both of you.

17. Build a kick-ass portfolio & resume

Portfolios and resumes are your first impression to an employer during an interview process. It's imperative to put on your best face.

Fix spelling and grammatical errors. Ensure that everything is formatted consistently and appropriately.

If you want more details on writing an awesome resume, feel free to check out my previous blog post.

18. Fail fast and fail often

Failure is subjective. If you make a mistake, learn from it. Don't make the same mistake twice. Just because something "failed" doesn't mean it wasn't valuable.

The most successful people in history produced vast amounts of work, yet they're only recognized for a few.

You don't have to code beautiful websites from start to finish for each project you develop. Focus on the underlying technology, and you can worry about making it look nice later.

19. Just keep going

There will be days you want to give up coding. Don't. It's a difficult career, and everyone suffers with impostor syndrome.

You are not alone. Coding will get easier over time.

Take it day-by-day, and you'll be alright.

Just keep going.

Latest comments (69)

Collapse
 
reviewstimes01 profile image
The Reviews Times

Our proven process ensures you are kept informed throughout the construction project. We offer home remodeling services Chicago, IL, that aim to exceed expectations by meeting deadlines and budget requirements.

Collapse
 
ryanjames profile image
Ryan James

As a software engineer, staying organized, continually learning, and collaborating effectively are key. Tools like Juicer Hunter can also aid in productivity, offering insights into emerging markets and strategic growth opportunities. Additionally, explore essential culinary skills, such as how to cut onions in squares for skewers, to balance work-life interests and enhance creativity

Collapse
 
willywins79 profile image
Will Jordan • Edited

To judge the quality of our dissertation help services, you can review the samples of work done by our experienced dissertation writers. Check for yourself the competence and professional writing style; you won’t stop recommending our dissertation help UK services to your contacts.
An entire dissertation, only a few clicks away!

Collapse
 
bettygar profile image
BettyGAr

Thanks for your advice! I think they will help me a lot now. I recently worked on the Fieldwork software. I helped the programmer create the code. I am just learning theory and starting to practice, but I know that this is a good start for me.

Collapse
 
tmohammad78 profile image
mohammad taheri

Finding mentor is really hard , and I think very few senior developer accept to give you time

Collapse
 
jacobor83661854 profile image
Jacob Oram

I am happy to read your beautiful post. I will share my ideas here that if we will discuss here our views and ideas, we can improve our writing and reading skills by sharing our ideas. Get help from theacademicpapers.co.uk/buy-disser... if you want to get distinctive positions.

Collapse
 
alibas13 profile image
Ali Bas

Hi Emma,

Thank you for sharing this so good advices.
Currently I'm following your 9th advices: Don't be afraid to ask questions :)

I want to start my own open source project and push it on Github and as you suggested there is "Coding Coach".
I want to learn from some great developers so I decided to register on this site, giving my point of interest I can see there are a lot of mentors on this site but how ask them advice/help directly with her post (twitter, email, linkedin,)
how did it works must I become first a "Patreon" and give first a donation ?

Could you help me ? Have you another suggestion ?
Thank you

Collapse
 
moideenluqman profile image
LUQMAN P

Thanks for your advice, It's a really good initiate for me

Collapse
 
k_penguin_sato profile image
K-Sato
  1. Get involved in the community

This is something I should have done from the beginning.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Sameeee.. took me 4 years

Collapse
 
lucasm profile image
Lucas Menezes

Thank you Emma!

Collapse
 
phillipdodd profile image
Phillip Dodd

Great article, thanks for sharing it! I found this to be very helpful.

I was wondering if you had any further tips regarding #4? Particularly: I have a bad habit of, once I learn something, I just assume it as 'common knowledge that everyone knows'.

So, when I try to think of ideas for things I could potentially write a blog post or something about, I often decide against most of my ideas for the reason of "people would already know about this / not want to read about it." Lately at work, though, I'm finding this to not be the case and that I sometimes do my co-workers a disservice by not sharing certain information because of this.

Collapse
 
emmabostian profile image
Emma Bostian ✨

Everyone learns in different ways and all content you produce, whether completely unique, will be valuable :)

Collapse
 
phillipdodd profile image
Phillip Dodd

What a great way of looking at it -- thanks!

Collapse
 
therabidmango profile image
Joseph Abreu

This is a great list to kick off 2019 with!

Collapse
 
dirkncl profile image
Dirk Levinus Nicolaas

I agree with you.

Collapse
 
akintunde profile image
Akintunde ismail

great and helpful

Some comments may only be visible to logged-in visitors. Sign in to view all comments.