DEV Community

Cover image for 25 Tips for New Developers: Advice from a (Mostly) Self-Taught Software Engineer

25 Tips for New Developers: Advice from a (Mostly) Self-Taught Software Engineer

Ali Spittel on August 07, 2018

The most common question I get from blog readers is "What is your advice for new programmers?" So, I thought it was time to write up my thoughts. ...
Collapse
 
ben profile image
Ben Halpern

Ali's weekly dev bible

Collapse
 
aspittel profile image
Ali Spittel

Hahaha thanks!

Collapse
 
ekimkael profile image
Ekim Kael

26 - if you are not native English, take English courses up to at least intermediate level, with the majority of good resources being English and instructions, functions, conditions and others in English

Before kissing Javascript, I surfed a lot between several programming languages.
I would recommend Ruby for beginners.the syntax is like a conversation with your PC for real.
And eventually Javascript.

Collapse
 
vlasales profile image
Vlastimil Pospichal

I'm not native English. This discussion is the best course for my self teaching. Not empty phrases only, but talking about some problems.

Collapse
 
ben profile image
Ben Halpern

+1 for Ruby, if only just to try. It might really stick with you.

Collapse
 
labib profile image
Asif • Edited

Yes
Thats a useful comment.English is my third language.
And also I am really in love with Javascript. 😊And using nodejs instead of python.

Collapse
 
pavanbelagatti profile image
Pavan Belagatti

So amazingly written with simple yet powerful points that every developer can follow. Loved it so much, Just shared it on Reddit too:)

Collapse
 
aspittel profile image
Ali Spittel

Thanks for sharing! Wow are the comments toxic over there -- I haven't done much on Reddit but I wanted to see the discussion since its doing well. The attitudes are insane!

Collapse
 
alchermd profile image
John Alcher

I agree with a lot of points in your post, but the top comment on r/programming for this article, though bearing a toxic undertone, is a really good advice

Tip #0: Don't take anyone else's advice too seriously. Most people give advice to validate their own choices and do not really take into account others' experiences, values, and struggles.

... with a huge emphasis on too seriously!

Collapse
 
pavanbelagatti profile image
Pavan Belagatti

Yes, take a look. Your thread that I shared is the top trending thread on Programming subreddit. Almost 90k views and 350 comments. Insane. I lobe both Dev.to and Reddit.

Collapse
 
darksmile92 profile image
Robin Kretzschmar

Hey Ali thanks for that list! Despite i am an experienced developer, I spotted some of the points that I need to take more seriously from time to time.

The Set game from the NYTimes was new to me, thanks for the hint!

Collapse
 
dandevri profile image
Danny de Vries

Some people tend to jump into learning a framework cause that's what all the job listings say. Building a strong foundation, as you mentioned in the post, and knowing your fundamentals is really valuable.

Collapse
 
maxwell_dev profile image
Max Antonucci

I agree with the "pattern recognition" tip the most, especially when it comes to learning a language's different design patterns. My coworkers have told me its the area they felt was most important when starting out since it affects so much of their work. Knowing a few good design patterns is great for refactoring and improving code by having different sets of proven, usable designs to measure it against.

Collapse
 
dougaws profile image
Doug

Build a toolkit/cheat sheets:

Can't remember how to convert an array to a hash map? Do it once and write a routine that does that (in one or more languages) and save it in your toolkit. Don't forget to give it a descriptive name and comment the bugger.

I have a bin folder of bash shell scripts I drag around on a thumb drive with me. All I have to do to get them to work is symlink /bin/bash to wherever bash lives on the system.

I also have text files with common Git commands, etc. I know I can google them, but why waste time when I've already figured it out once?

Collapse
 
prashastii profile image
PearL0822

It really helps. I too note the problem and solution in pseudo form.. saves a lot of time.

Collapse
 
pzelnip_84 profile image
Adam Parkin

Thanks for sharing this, so much of it very much resonated with my experience as well. #13 (getting comfortable with failure) was something I really struggled with early in my career and paid for it.

I wonder about depth over breadth early on though, my experience early in my learning was while learning "a little about a lot" was helpful for finding the connections between otherwise disparate parts of software development which (for me at least) helped to reinforce ideas and concepts. It also helped me find my niche as it helped me identify the areas that were of most interest to me.

Great post all around though!

Collapse
 
michaelgv profile image
Mike

A little thought:

  1. Avoid hype, don't turn yourself in circles trying to understand something because it's "in" right now, understand the fundamental basics of your language, then learn the tools around it. You should be able to build an application without needing the framework. Take for example, I've seen some Angular developers who tell me they're "experts" at Javascript, when given a non-angular project they don't know how to react, as they've only ever used Angular and not vanilla ES6 with Babel.

react pun intended

Collapse
 
jaredgeddy profile image
Jared

So true, flavor of the month frameworks will only serve to distract and overwhelm you.

Collapse
 
kharouk profile image
Alex Kharouk

Just starting out learning how to code, so this was really helpful. Thank you Ali.

Collapse
 
codingnninja profile image
Ayobami Ogundiran • Edited
  1. Read other people's code... You may not understand a thing now, but it will help your understanding in the future.

  2. Read code line by line. Understand one line before moving to another. When I just started, I read many books without having deep knowledge because I scanned through most code but I am happy I did so instead of doing nothing.

Collapse
 
joeberetta profile image
Joe Beretta

Really cool tips! Many of them use always

Collapse
 
bettygar profile image
BettyGAr

Thank you, Ali! Your advice, they will all be useful to junior web-developers! IT software is not so easy for learning. I also think that when planning your future, the first step is to determine your interests. Depending on what you enjoy doing the most in life, you need to decide which category of web development to choose as a source of future income.

Collapse
 
bytegasm profile image
Bytegasm!

Most importantly, have fun.

Collapse
 
itsumoonazicode profile image
kikoko.

Sooooo good article!

Collapse
 
perpetual_education profile image
perpetual . education

This is a really good list. We kinda took all those things and put them into our course! (but in a bit of a different order) perpetual.education/how-we-designe...

Collapse
 
jamesmh profile image
James Hickey

I love points:

  • "Find your niche"
  • "Depth over Breadth"
  • "Get good at researching"

When I was starting out my first junior position I was really good at Regex. I ended up becoming the go-to guy for complex database migrations since I could convert a huge C# "script" into a really simple SQL script that used Regex to find certain patterns and convert them into the required formats, etc.

These SQL scripts would do the job in a fraction of time (like days down to hours or hours down to minutes).

Eventually, I became the go-to for front-end stuff.

Then other stuff after that.

One of the main things I've gleaned from my career is that you need to be the "go-to" for something in order to stick out.

Sometimes is just a matter of discovering a gap in knowledge on your team - and filling it!

As you said Ali, get the fundamentals down.

I'd add "...then find what gap exists in your team's knowledge and learn learn learn learn!"

Collapse
 
dyland profile image
Dylan Davenport

“16. You don't need to know everything”

I wish employers understood this. I struggle with trying to learn both React and Vue almost simultaneously because jobs always ask for one or the other or in some cases both! It’s tough to know which one to stick with.

Collapse
 
thobyv profile image
Thoby V ijishakin

Ali my distant mentor. Thanks for sharing this.

Collapse
 
kuyaker profile image
Kier

"Great finds" Thanks Ali :D

Collapse
 
gabeguz profile image
Gabriel Guzman

Awesome post, 22 is my favourite!

Another great resource for learning a new language is exercism.io -- they have lots of code challenges, and mentors who can help you out if you get stuck.

Collapse
 
jaredgeddy profile image
Jared

Wow this was an absolutely incredible post. Thank you so much for sharing so much wisdom in one place! 22... wow that one hit deep.

Collapse
 
matheushchaves profile image
Matheus Chaves

"or (like me) write it on your mirror with a dry erase marker" ... Apparently I'm not the only one <3

Collapse
 
adev08 profile image
Alex Mateo

Great post! Thanks for sharing.

Collapse
 
jessachandler profile image
Jess Chandler

22 all the way!

Collapse
 
adriathomas profile image
Adrian Thomas

Nice. Problem-solving and researching are two things that I'm working on improving. Nice tips.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Nice article.

I tried a video response to this

Collapse
 
liana profile image
Liana Felt (she/her)

Great post!

Collapse
 
aspittel profile image
Ali Spittel

thank you!

Collapse
 
tojacob profile image
Jacob Samuel G.

🙌

Collapse
 
mihara17 profile image
Michelle Te Whata

love the information explained so well
thank you Ali

 
aspittel profile image
Ali Spittel

thanks!

Collapse
 
ssvegeta96 profile image
ssvegeta96

Revist math. My brain took a for loop to my head and I stopped reading. :(

Collapse
 
shubham_st profile image
shubham_tiwari

Nicely Written 👌👌👌👌

Collapse
 
shubham9411 profile image
Shubham Pandey

That's a lot of stuff to do

Collapse
 
shanise profile image
Shanise Barona

Great tips Ali!

Collapse
 
tamouse profile image
Tamara Temple

great article, sharing this around

Collapse
 
dinosaur_ayu profile image
DinosaurAyu

Wonderful! I'm your subscriber now!
It's always good to get tips to avoid mistakes as a newbie.

Collapse
 
bbarbour profile image
Brian Barbour

I feel good that I've been doing most of your tips!

Collapse
 
aenon profile image
Xilin Sun

I think you mean "regex" or "RegEx" when typing "ReGex".

Collapse
 
aspittel profile image
Ali Spittel

Ah good catch -- things that Grammarly doesn't catch!

Collapse
 
ecprincewill profile image
Princewill

👍👍

Collapse
 
or1sensei profile image
0R1

Thanks realy cool

Collapse
 
rexmakusia profile image
rexmakusia • Edited

Thank you, for the tips.
It has been my struggle, starting as a new developer.