101 Tips For Being A Great Programmer (& Human)

Emma Wedekind ✨ on July 09, 2019

1. Get good at Googling Being a programmer is all about learning how to search for the answers to your questions. By learning to Google ... [Read Full]
markdown guide
 

Love the whole list...
Bunch of valuable points ❤️

I would add this one:

102 Do Physical Exercises

Preferably everyday (or at least 3 days a week).

Our jobs require sitting most of the times... And, in years this will have severe effects on the body.

I'm sure everyone loves a specific sport that he would love doing on a frequent basis.

 

100 push-up, 100 sit-ups, and 10km Run twice a week will make you one-punch-man :-)

 
 

Loool!!! All the S-heroes don't believe it and want me do?!

 

I agree on this list, and Yours 102 (could be in the 2nd in the list already)
I'd add:

103 Sleep enough!

 

Very true,
Your readiness depends on how well you recover (Mentally/Physically) during sleep. Surprisingly many factors have to be in order:

  • Enough hours, deep and rem stages
  • Get your pulse down early (during the deep sleep stage)
  • Get your Harth Rate Variation up (recovers your brain) etc,

I've been improving it by knowing what effects on those and using Oura to track it (Anyone knows about that nordic high-tech startup? ouraring.com/ )

For me and most of us those are just simple things:

  • Go early to bed, and always around the same time
  • Enough sleep in hours
  • No screentime (definitely no emails/work) before going to bed (Stress is lowering my HRV ;/ )
  • No sports (heavy) before at least 3 hours before going to bed.

My last night stats (just a few of them):
Oura screenshot

 

+99!
Sleep is the key to almost every problem in life. I prioritize it over literally everything.

Natural methods are best (easy on the melatonin) and I personally enjoy the US military method of sleeping I found here

 

HELL YEAH!

I'm astonished at the amount of programmers who sleep at 5 AM then wake up like 9 AM... yes, this could work, but it's NEVER sustainable in the long run.

 
 

One good way to get some of your exercise in is after each pomodoro, for your break, do 50 jumping jacks as fast as you can, and then sit right back done and start another pomo. I've started switching it up and doing 10 pushups as fast as I can instead, and eventually want to work in situps. The key for me is to not have a pomo going while deciding what my priority is, checking email, or getting ready to work on a specific thing. Then in order to get the maximum productivity out of myself I decide on a goal which is a piece of my current priority project, which will take between 3-5 pomos. Any less than that and I lose productivity, any more and it is not as fun because I get worn out and have to take a longer break in between. After I complete my goal, I take a real break where I do something that involves my other senses and relaxes my brain. For example I might take the dog out to go potty, or wash a few dishes, or brush my teeth, or get dressed for the day. If you work from home you can try out starting work in your pajamas and then start getting showered and dressed and stuff on your breaks.

 
 

Nah, I hate physical exercise and I don't have a sport I like, I hate them all equally and I get tired easily because I have asthma.

 

What about martial arts? There's MMA, kickboxing/Muay Thai, Karate, Kung Fu/Wing Chun, or even knife and stick fighting in the Filipino Martial Arts!

Nah, I don't like them, I tried doing taekwondo when I was a kid but it was too boring and tiring.

Get a dog. I walk mine three times a day:
8am 45 minutes
3pm 20 minutes
8pm 10 minutes

Lost 5 pounds in 2 months!

I appreciate the advice but I don't think I'm responsible enough to take care of a dog, besides, I don't need to lose weight since I'm still not overweight xD.

 

What kind of sports you find thrilling deep inside your heart?

None, the only things I like are Gaming, Playing guitar, watching anime, driving and frontend&backend development.

Are you sure you hate exercising? Often when somebody says they hate something they have bad memories, most likely due to poorly behaving people around. Are you letting these experiences control the rest of your life and keep you hating exercising, all the while the lack of moving adds far more issues on top of the asthma?

You can keep your current opinion, but over time your body would be like a code base that remains unmaintained with no refactoring at all, only adding up spaghetti solutions on top of another when you're trying to fix issues without admitting there is a core issue that needs a rewrite.

Nah, I hate it, I have asthma so I get tired quickly when doing any sort of physical exercise. And I'm a really picky eater(hate fruits and vegetables because of their smell, colour and texture) so it's really hard for me to be healthy(although I'm since my head doctor told me I was healthy).

I'm also really lazy so I usually refuse to do things that would take away some of my free time.

If I work 6-8 hours as a web developer I don't want to expend one or two hours running or doing exercise.

All I want to do on my free time is playing games, guitars and watching anime, since I work to be able to buy games, guitars, amplifiers and play anime.

I don't care about those things. At all. You're a mediocre programmer and stay that way. That's what you say.

You can't call someone else a mediocre programmer because of something non-related to programming.

I'm not calling it. That's what you're making yourself appear. You repeat your mantra of being lazy, uninterested in improving, and only being interested in very limited things. What else could I think of you as a programmer, too? Lazy, uninterested, unwilling of change or improvement, always keeping the same straight face "this is me" and not considering anything else.

In the end it is you who make yourself what you are. You gave me all the reasons to think of you as a mediocre programmer.

I gave you no reason since I didn't tell you which technologies I work with when I'm programming. What's wrong with being uninterested in improving things that don't affect the way I program?

There are many things in web-dev related programming I want to learn, and many things I want to avoid, most programmers are the same, they are interested towards a specific area and that doesn't makes them "MeDiOcRe PrOgRaMmErS" like you said.

 

This should definitively be on the list! Along with the sleep part. Mind and body health is really important is you want to be good at anything.

 
 

I saw the title and thought "Huh, 101? I wonder how many of these tips are actually good?"

ALL OF THEM, apparently! Great post. This is now at the top of my list of articles to give to new programmers.

 
 
 

Awesome tips! Thanks for sharing, Emma! 😍

My personal favorites:

"39. Take breaks"

So much this. 🙌 It can be difficult to stop working when you just love what you're doing. But more often than not, breaks make you even more productive in the long run. Consistency is key, and you won't be able to keep up an unhealthy habit/routine.

"83. Don't compare yourself to others"

With today's connected society through social media, it's hard to not compare your own accomplishments with others'. But the only way to succeed yourself is to do the actual work—there are no shortcuts.

And remember that we all have something unique to give. Embrace that, don't wish you were in someone else's shoes!

"96. Code for accessibility"

No one should be left behind in this quickly emerging world ❤️

 

Excellent list. Also, thank you for breaking it up occasionally with images; that's a thoughtful touch.

I am particularly fond of #83 (Don't Compare Yourself to Others), and wish I had learned that a decade or two earlier.

 

This is a fantastic list. Out of 101 you hit 99 percent bang on imho.

From my personal past experience and for my future career there are only 2 refinements I would make.

Under promise and overdeliver:
In specific working environments I would strive to "precisely promise, and precisely deliver".

In agile companies 'accurate' measures of the (ideal) effort something takes to do are valuable. If I say something will take longer than it will, this has knock on effects to other people relying on my estimation. Features are delayed needlessly, customers wait longer etc.

I'm all for few meetings but I think it's harder to generate accurate tasks/features/stories in these methods. Agile values face to face > remote asynchronous messages, and I've definitely seen the value in that.

Even so. 99.99... % agreement is miles more than I find in many other articles, so good work!

 

) Good work!

I guess you are one step near to write a book.

I know some books that did start with a list like this, laterl some items became paragraphs, sections and chapters.

Regarding:

  1. Take breaks

A good technique is to put a bottle of water in your desk and drink a lot.

Drinking water is very good for health and your bladder would remember the break.. Because you'll need to go to the bad.

 

Even if not from the perspective of an agile company, or without the need for precise task managament, I'd be careful about over delivering as a constant commitment. I've been overdelivering for years (and not because of my choices, but because I overworked myself) and what has happened is that the "over" part has become the norm (back then), so any time I would state that something is out of reach, they'd point out I'd do my magic and take x days instead - and that's incredibly toxic for a very committed developer.

So my rule is that I will overdeliver if the "over" part is something that aligns with business requirements, is an easy win, or the effort/value is particularly good; and I have the actual energy to do that.

 

Holy content Batman! How long did this take to write? Was it a background thing over a couple weeks?

 

I wrote the tips over a few hours but it just took me a while to put it into a proper format :)

 
 

Thanks a lot for providing here tips for being a great programmer which are very beneficial for IT learners of Quality Dissertation where they are come to take coursework help UK with pass guarantee.

 

Shouldn't you mention @NinaLimpi at least once, considering almost all of these images are hers and have no attribution?

 
  1. I always mention UnDraw whenever anyone asks about the images.
  2. I promote her on Twitter all the time
  3. If you read the license, it says that no attribution is necessary.

I’m not sure if you meant to call me out rudely but it came off that way. I would never intentionally “not attribute” someone’s work to them. I have read the license.

 
  1. I have no way of knowing that
  2. I have no way of knowing that
  3. Obviously its hard for me to know about the license of an unattributed image. For the record I did look (briefly) before I posted my original comment and couldn’t find licensing info.

Not sure how what I said, came off as rude. I asked a direct question followed by an assertion of fact.

I appreciate your reply but I still stand by my original position, license or not. If it were one or two pictures, I would never have said anything. But this post is almost a portfolio for her. I’m sure if you asked her, she would come here and tell me she knows you and doesn’t care. But if it was my friend, their name would be somewhere in this post.

I hope you understand my position better.

Hey bud, you're wrong. Accept and get on.

What you think is right or wrong is not the case. The creator of the illustrations doens't want attribution. Read it here: undraw.co/license

"Oh BuT hOw CoUlD i KnOw?"

Exactly. If it were for you to know, the license were to be "give attribution".

Also, if you've really searched BRIEFLY for "undraw", Google gives you the option to go directly to the license page. Which ironically, is the number 1 rule of the article.

At no point have I been hostile or derogatory. Yet, you've felt the need to come in and essentially bully me because I have an opposing viewpoint to yours. In my comment, I clearly convey that I tried to search before saying anything.

Regardless of whether I'm wrong or right, this is not a mature response.

I think the challenge is that reading text on the Internet conveys no context whatsoever. I think a lot of people are rude in e-mail, but the truth is that they are trying to write short and to-the-point messages and not waste a ton of time on the e-mail itself when there are far more pressing matters to attend to.

Also, I personally find unsolicited advice-giving can be a minefield. It can make it seem like an attack on the author or come across as arrogant and it makes assumptions. Questions are my favorite way to open a dialog when I think something should be done in a different manner.

In this situation, you could have said something along the lines of "I have a very disciplined system for citing and crediting tools I use, and I noticed you didn't attribute X. Could you please tell me a little bit more about your citation process?" Then you can engage in a discussion that is hopefully productive, respectful and a benefit to all who read.

Seek to understand, rather than to be understood. Approach all topics with a beginner's mind. Be aware of the fact that you oftentimes do not know that you do not know something, if that makes sense.

When a conversation starts getting emotionally charged, take a step back. Go outside, I hear sunlight is really nice and I should be getting more of it :P Assumptions tend to lead to more assumptions which tends to lead to looking like an ass.

Lastly, consider appropriate venues. If you think someone is attributing wrong, a PM would probably be a much nicer way to get this across. No one likes public criticism. I know from the talks we've had together you're a good dude and you didn't mean ill-will, but it came across differently unfortunately. See if you can take something away from this experience!

I always appreciate your insight Scott, thanks for taking the time to evaluate the situation rationally.

I think the challenge is that reading text on the Internet conveys no context whatsoever. I think a lot of people are rude in e-mail, but the truth is that they are trying to write short and to-the-point messages and not waste a ton of time on the e-mail itself when there are far more pressing matters to attend to.

I agree. Although I still believe that there was nothing "rude" or "unrude" about what I said. It was definitely opinionated and direct, which is not something everyone appreciates.

Also, I personally find unsolicited advice-giving can be a minefield. It can make it seem like an attack on the author or come across as arrogant and it makes assumptions. Questions are my favorite way to open a dialog when I think something should be done in a different manner

To be fair, I did start with a question, so it's not just the form that matters. Again, agree with the overall sentiment. In fact, this observation is so great that I might write a blog post about it.

In this situation, you could have said something along the lines of "I have a very disciplined system for citing and crediting tools I use, and I noticed you didn't attribute X. Could you please tell me a little bit more about your citation process?" Then you can engage in a discussion that is hopefully productive, respectful and a benefit to all who read.

You're obviously right.

Seek to understand, rather than to be understood. Approach all topics with a beginner's mind. Be aware of the fact that you oftentimes do not know that you do not know something, if that makes sense.

I assume I know nothing, because no one does.

When a conversation starts getting emotionally charged, take a step back. Go outside, I hear sunlight is really nice and I should be getting more of it :P Assumptions tend to lead to more assumptions which tends to lead to looking like an ass.

I'm not emotional about this at all. I've played far too many hours of online games to get tilted by interactions on the internet (for better and worse).

Lastly, consider appropriate venues. If you think someone is attributing wrong, a PM would probably be a much nicer way to get this across. No one likes public criticism. I know from the talks we've had together you're a good dude and you didn't mean ill-will, but it came across differently unfortunately. See if you can take something away from this experience!

The first thing I tried was to direct message her. She has her DM's closed. That's a personal choice, but also voids that argument. It's not like I went to the Dev.to staff and complained or tweeted publicly about this issue. I went to the most direct place I could communicate with her and raised it.

Overall, I could have made the comment more digestible and friendly. Speaking of beginners mind, even if you evaluate the situation from the opposite view of mine

"Left a rude comment on the post about attribution"

I'm still only guilty of rudely commenting in the effort to defend someone else's work whom I don't really know. It's also a bit hard for me, because I received a similar comment just 1 week ago and handled it quite differently.

Overall, you gave me a lot to think about. Thanks for giving me an opportunity to improve!



No problem! Whenever I see the comments get a little uncomfortable, I try to step in because I'm one of our content moderators. My hope is that by reconstructing the events as a third party it can be turned into a learning experience for everyone who reads that far into the comments.

And at the end of the day, we're all adults and we should feel free to act like responsible adults. You're going to offend people for reasons beyond your understanding, there's always that person looking for any excuse to start a fight, and my generation is really guilty of "I believe in freedom of speech unless it goes against my beliefs."

Glad you got something constructive out of it!

 

I would add one more tip in your awesome tips :D

Shutdown all social links while programming (Facebook, Twitter, Insta etc)

They distract alot just about when you catch the point a message bumps up. :D

 

Awesome stuff :-D

I especially like "51. Kill your darlings". Too many developers have an unhealthy emotional attachment to their code, to the point where simple suggestions / questions are taken as attacks on the code. The code I wrote yesterday / last month / beginning of my career may be subject to improvement. Therefore I welcome discussions about my code and ways to improve. Sometimes I learn a new thing, and sometimes I teach a new thing with these sorts of discussions :-D

One important thing I also learned is to spot tunnel vision when it happens.

Whenever I'm trying to write some complicated clever code to solve a very specific problem, I take a step back and look at the big picture. Often times I'll see that what I was trying to do in one place was more efficiently done elsewhere, and my problem finds its resolution.

 

About 10% way down, I thought "I have to make a roadmap kanban board with this." Then It took a while to realize, this list is quite beefy for that.
Thank you for amazing advice. You have to write a book about it later.

 

How do you write such no-nonsense, great posts? If I can replace all these 101 with one tip- I would say, just #CodeEveryDay and you will become the great programmer.

 
 

Hi, Your article is very instructive,Could I translate it into Chinese?

 

That would be great, thanks! Just please link back to the original article!

 

No problem,I will do that and let you know then.

 
 

37. Learn to learn

People learn in different ways. Some learn best through video tutorials, others through reading a book. Figure out your learning style and practice it diligently.

And

50. Don't try to learn everything

There is an infinity pool of knowledge in the world and it is simply impossible to conquer it all. Pick several topics to master and leave the rest be. You can acquire working or tangential knowledge about other areas, but you cannot possibly master everything.

These go hand in hand. There's this dangerous myth about the "rockstar" developer, who knows everything off the top of their head. It's absolutely bunk. The folks that appear to be "rockstar" developers have simply learned how to learn. They know where to find a solution if they don't already know it!

If only I could go back in time and give my CS students this list!

 

I LOVE your article Emma! Very well done. The whole list is great.

Some thoughts I had while reading:

"...7. Name variables and functions appropriately..."
There are two real problems in computing:
Naming things
Cache invalidation
Off by one errors

"...17. Don't gate keep..."
IMO, programming has room for everyone. From toddler to retired.

"...51. Kill your darlings..."
I tell anyone I can '...when the code leaves your machine, it is not longer your code. Let it go."

"...64. Learn design patterns..."
Of everything I know today, I wish I knew this sooner.

 

Great article Emma, thanks for sharing this!

The most important one IMHO "The only thing you should compare yourself to is who you were yesterday"

And I would add, "Remember that this is about human beings working for and with human beings. No need to act like you´re not from this planet..."

 

Great article!

I'd like to add to #72:

Write documentation

Yes, it's a thing most developers neglect, but good documentation (be it API documentation, well documented code or prose about a project) helps yourself to grasp and reflect on what your code is all about; helps others understanding it; helps your three years older self understanding it when revisiting it. Also, learn how to write good, comprehensive, well structured and readable documentation.

 

This article is so good that I translated it in Korean and shared it. Related Links: medium.com/jaewoo/%ED%9B%8C%EB%A5%...

 

Wow, it was actually a hundred and one tips.

🤯👏🏽

 
 

Listen more than you talk
Learn by teaching
Don't be afraid to ask the dumb question
For every criticism, 10 compliments
Before you send that angry email/text, let it sit for 10 minutes
Revise, revise, revise

Great list Emma, I'm going to look at it regularly as a reminder

 

Amazing tips, Emma!! 👏👏👏

I just wanted to expand on a couple of them:

  1. Keep learning

I think programmers should also develop the skill of self-learning.

New languages, new frameworks, and new techniques appear all the time (especially in some areas, such as front-end development). Being able to learn and discover things by yourself will give you a great advantage. Don't forget, however, Emma's tip #50 (Don't try to learn everything).

  1. Learn to love constructive criticism

Also, It's a good idea to learn how to give constructive criticism. A couple of years ago, I learned the "sandwich technique":

  • Start saying something positive about what you're evaluating
  • Continue with the things that should be improved. I know it sounds like a euphemism for "the things you did wrong", but it's actually important to frame it like this. After all, the aim of constructive criticism is to help the other person to improve.
  • Finish your evaluation with another positive aspect.
 

Emma! I loved your article,this have to be share with my coworkers ;)

 

Great tips Emma.

I would add that:

When you finally solve a problem that you searched for online and couldn't find a solution, be kind to go back to that thread and provide the solution.

Doing so helps the next person that may find him/herself in the same position.

 
 
 

This is a great list!
No nonsense and to the point!
Thanks for making this! 🤓

 
 
 

Really enjoyed the article. I read the whole thing which is to say it is well written and useful advice.

 

Great Article! These tips are a knowledge compendium.

 
 

Amazing article. All very important points that people don't talk about enough. Thank you for writing this, Emma.

 

Thank you for writing this, Emma! So many good points in here, some of which I'd accidentally let slip to the back of my mind.

 

This post is as beautiful as youR work! Thank you so much for share it! :)

 

Hi, I appreciate the compliment but this is a professional blog and I would prefer to keep the comments professional. Thanks.

 
 
 

A superb list. Thanks for sharing. Loving the Ladybug Podcast too!

 

Thank you Emma.
I want to apply for job I'm not yet qualified for 👩‍💻

 

Each of these topics could be its own article, and I'd heart each one!

To bad there is no way to give 101 hearts to just this one haha!

 
 

Skills fade with time unless consciously improved upon, and this industry evolves so rapidly it's important to keep practicing.

Love this the most.

 

Nodding in approval to all of it, really impressive list. Thanks for compiling it! Appreciate the effort :)

 

Thanks, Emma! Great post and I absolutely love the illustrations.

 
 

Excellent Gems of Wisdom - Feels like 20+ years of experience capsuled in 101 points.

 
 
 

I agree with you 90% of the opinions. The remaining 10% I respect.

 

What a comprehensive list, you almost missed nothing.

Thanks.

 
 
 
 
 

Omg, this really is a surprisingly beautiful list! Inspiring and effective—I’ll be referring to it often. Taking a cue from #78 and saying thanks!

 

Be good read code pair often don't be a jerk and test sumthin ... anything!

 
 
 

Excellent. 90% of this is also relevant directly to Testers. Thank you.

 
 

Love what uve taught me, thanks for shearing ur knowledge

 
 

Great list 👍👍👍
I love this article. But unfortunately I have not seen such a person ever ....
I try to keep practicing to be like a good developer🙋‍♂️

 

Very true and interesting list. But who is "Jerry"?

 
 
 

This is really great. Covered a whole lot of ground. Will share this with my team.

 
 
 

LOVE the list!

I think it would be cool if you could add links to some of them, linking to articles that talk in more detail about why the advice is important, and how to follow it.

 

Great article! Shared it around the office to my fellow Juniors

 

I havent had any luck with coding coach. I think its just me tho.. cannot find a mentor

 
 

Hey there! I shared your article here t.me/theprogrammersclub and check out the group if you haven't already!

 
 

74. Speak up in meetings

So much! Don't be afraid of asking questions in a meeting, what better place to have a discussion when everyone is around? :) :) :)

 

This is great, thanks Emma! 🙌 Really interesting reading for someone like myself who's interested in learning more about how engineers work and what their main goals are

 
 
 
  1. Write a good README - your colleagues and yourself will thank you later....
 
 

It must be amazing to work around you. Great post thanks.

 
 

Definite Unicorn post! I have saved this and will most likely come back to it again and again!
Thanks!

 
 
 

If you're a ruby/rails developer you should read the comments section of the style guide. I got a good laugh.

rubystyle.guide/#comments

 

Great tips but the one at number 6 i would replace it to: Write useful and describing code and tests...comments can get outdated really quickly and no one forces you to update them.

 

Amazing post but you use (or the platform) h1 for every tips.
If you use Firefox lecture mode (F9) the browser hidden all this h1
;(

 
[deleted]
 
 

I guess their point was that 101 tips feels like a lot of content whilst you're not saying a lot about many of them. An option could have been to go for depth instead of breath, take a handful of connecting points and discuss them a bit further - explaining all the why's and how's about them. Maybe you had a particular situation in mind when you decided to write a certain point down, that could help people remember it better. Nothing you say is wrong, however people are quick to dismiss your effort if they find that something does not align with their beliefs. Thanks.

NB, tiny typo: 73. point has 'things' written twice.

The point wasn't to say a lot about them; they're tips, not chapters of a book. The whole point was to keep it succinct.

Thanks for the typo info.

For instance, what do you mean by learning to google things effectively? Care to give a few examples or a general guideline of things to avoid in order to not google things badly?

You can always Google for more specific tips how to Google things better.

 
 

It’s really easy to criticise what others do. Your “deleted” comment sadly shows the type of developer you are my friend. Kind regards.

code of conduct - report abuse