create account

How to Be a "Real" Programmer by alcibiades

View this thread on: hive.blogpeakd.comecency.com
· @alcibiades · (edited)
$23.85
How to Be a "Real" Programmer
![](http://www.kinema.sk/files/recenzie/20104302329/ironman2-1.jpg)

This is ***not*** your typical list of 'requirements' that make someone a good programmer. I tried to dig into human side of things and see what principles and codex rules  should guide someone through coding life and relationships with others. Here are some of them I find really important and that are not valued enough.


# Be considerate and down to earth

From the beginning of time, programmers have the reputation of being condescending and judgemental when it comes to their colleagues and customers. Instead of being encouraging and compliment them on the progress they made or ideas they have, we often tend to point out that one little line of code that is poorly written. And most of the time it's just a personal preference of how one should implement it.

Same goes for new technologies, frameworks and tools. Programmers judge each other based on what skills and technologies they know and use.

> - *Wow, you still use Angular? OMG, you should have switched to React already!*

Or something along those lines.

This attitude is toxic and serves no one.

Except to feed your ego.

Be respectful towards other people's work and experience.

# Help others as much as you can

![](https://67.media.tumblr.com/bdc7e65754a6347485c3e07d7d13fbfd/tumblr_oab598sjga1tpri36o1_500.gif)

Programmers should always be collaborative and help others in need. If you can't help or what they are asking is not in your area of expertise, point to someone who can help. Remember that you were once in that position.

And if you are the one who needs help, don't hesitate to ask your mentors and peers or type a question in the chat. Someone probably dealt with the same problem. Googleing and searching on stackoverflow is fine, but direct help can speed up your learning or troubleshooting process immensely.

So this kind of help is always well received. It shows you care about someone's work even though you might don't have direct benefit from it.

# Realize it's ok if you don't know something

![](https://cdn-images-1.medium.com/max/2000/1*bbxDiplpyPrwg-g7GXC-FA.png)

*State of tools and technologies in front-end web development*

There is a big misconception among programmers that, in order to be a good one, you have to know everything.

New tool comes out and everyone's all the sudden chasing this shiny object thinking it's necessary to learn it right away. The truth is, in most cases you can rely on the skills you already possess. Yes, you can absolutely still use Gulp even though Webpack is becoming 'next big thing'. It's ok if you don't implement test-driven development or use Docker for continuous deployment.

Get comfortable admitting you don't know something. Don't mind the people who will judge you. It's humanly impossible to know it all.

That doesn't mean you shouldn't strive to be on top of your game. But do it in a healthy way, because you're really interested in something, or you like the concept of the new framework. Not to please anyone or prove your worth.

### *No need to memorize everything*

Instead of trying to memorize every little syntax rule  out there learn how to find it quickly. For every library and framework there is probably a nice written documentation you can look into.

So allocate your resources wisely. Don't overload your brain supplies by remembering these unimportant things you can find in fifteen seconds by typing in Google. It's a waste of precious time and energy.

# You don't have to write the perfect code all the time

Think of your editor as a playground. You can always try out stuff, tweak them, make it better, but don't dwell on it until it's 'perfect'. Since the possibility to break your whole system is minimal, you can always go back to your previous version and start again.

If programming history has ever thought us anything it's that you'll always look at the code you wrote six months or a year ago with a bit of shame or just laugh at it.

> - "*Did I actually wrote this?! Wow!!*"

But that's the natural process. As you evolve and learn new tricks and how to implement smarter design patterns, so your code will look better and better.

Just don't get stuck writing a block of code for days or weeks trying to make it perfect.

### *Learn the debugging process*

Just as writing code, it's equally important to know how to debug it. Troubleshooting annoying errors and becoming a problem solver can be tricky, especially if you are just starting out. You might be overwhelmed by all the technical details and steps. 

Don't freak out. Debugging does get easier over time.

# Share your code with others

Yes, some people will immediately judge you based on your code.

Let them.

Whether the responses are good or bad, don't take it too personally. Show your current skills and enjoy the process of collaboration. You'll get a lot of pleasure when someone finds your code useful for their project. 

Get involved in open source.

Find interesting plugins and projects on Github and learn from them. Applaud the authors for the amazing work they've done.

# You don't have to code all day every day

![](https://s-media-cache-ak0.pinimg.com/originals/51/0a/5b/510a5b155d23c03b8695be1ed66f7257.jpg)

When a regular person imagines a programmer he's probably a shy, awkward nerd, sitting in his apartment all day and night, living and breathing code. I'll let you decide how accurate this assumption is, but let's just say this lifestyle can be tempting or even sounding normal.

Even though writing code is fun (it was never about the money, right?), don't narrow yourself only on your code. Have life, be interested in other industries. Have other hobbies. Take lessons you learned from these other areas of life and apply them to programming.

Use your interests to make something awesome and creative with your code, something that will benefit to thousands of people. That's the whole point after all. Writing all these pieces of code and combining them into the big puzzle. Like a poet or an artist, knowing that your product is tangible and of value to others. 


***

*Image credits [1](http://m.kinema.sk/recenzia/33796/iron-man-2-iron-man-2.htm), [2](http://respectabledenofiniquity.tumblr.com/post/68297362603), [3](https://medium.com/@withinsight1/the-front-end-spectrum-c0f30998c9f0#.9wll8hf45), [4](https://www.pinterest.com/adrianapetit10/mr-robot/)*

***

### *<center>Thanks for reading! Would you add something to this list? Upvote and resteem the post if you like it. And make sure to follow @alcibiades to stay updated about future posts.</center>*

<center>[![](http://i.imgsafe.org/24df6d2c8e.png)](https://steemit.com/@alcibiades)</center>
👍  , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , and 151 others
properties (23)
authoralcibiades
permlinkhow-to-be-a-real-programmer
categoryprogramming
json_metadata{"tags":["programming","life","technology","code"],"users":["alcibiades"],"image":["http://www.kinema.sk/files/recenzie/20104302329/ironman2-1.jpg","https://67.media.tumblr.com/bdc7e65754a6347485c3e07d7d13fbfd/tumblr_oab598sjga1tpri36o1_500.gif","https://cdn-images-1.medium.com/max/2000/1*bbxDiplpyPrwg-g7GXC-FA.png","https://s-media-cache-ak0.pinimg.com/originals/51/0a/5b/510a5b155d23c03b8695be1ed66f7257.jpg","http://i.imgsafe.org/24df6d2c8e.png"],"links":["http://m.kinema.sk/recenzia/33796/iron-man-2-iron-man-2.htm","http://respectabledenofiniquity.tumblr.com/post/68297362603","https://medium.com/@withinsight1/the-front-end-spectrum-c0f30998c9f0#.9wll8hf45","https://www.pinterest.com/adrianapetit10/mr-robot/","https://steemit.com/@alcibiades"],"app":"steemit/0.1","format":"markdown"}
created2016-11-13 14:55:30
last_update2016-11-14 10:32:39
depth0
children9
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value18.076 HBD
curator_payout_value5.772 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length6,720
author_reputation494,941,341,451,500
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,757,481
net_rshares55,497,991,337,219
author_curate_reward""
vote details (215)
@builderofcastles ·
I don't know how to respond to this... half of me says this has to be trolling.

Aspergers types love programming, and often gravitate towards it.  Same with geeks.  These are people you can't just say, "be nice and play well with others" and leave it at that.

>Wow, you still use Angular? OMG, you should have switched to React already!

This is actually a case of trying to be helpful.  Its problem is that it isn't tactful to someone who doesn't share the same mindset.  To your typical aspy this is a standard, non-condescending way to alert someone that there is a better tool that they could be using.  The ego isn't involved.  Doing things in the most efficient manner is what's important.

To a normal person, who has been trained by the TV and school, this is an attack on their ego.  "I'm bad for not being on the cutting edge" is what they have been trained to think.

So your first part of this post is just confusing as all get out.
It is not helpful to the target audience.

A long description of how to translate L33t into salesman language for when you have to interface with the customer would be helpful.
<hr>
>You don't have to memorize syntax

What??!! You have to memorize syntax and know it inside and out.
Its not like english where if you forget to put a question-mark at the end of a sentence that people won't be able to read it.  Hours have been wasted for the want of a semi-colon or a closing parenthesis.

You were probably trying to refer to function calls into a library.
Yeah, those you look up all the time when you need to use them.
<hr>
Share you code with others?  Are you *explicative* serious?

This is not a decision that you can just make.
This is a decision that is made at the beginning of the project.
Should this be an open-source project or not.  There is no gray area.

If you are working for a company programming an internal tool YOU SHOULD NEVER EVER SHARE YOUR CODE WITH ANYONE outside the company.  (and everyone inside the company already has access to the source)

If you are working on your own proprietary game, then releasing any code will probably be the worst thing you ever do.  All it does is invite hecklers and thieves into your home.  The likelihood of someone coming out with almost the same game at the same time as you vastly increases.

If you want to share your code, and it is a wonderful glorious thing to do (for the right projects) then you start out with it being open-source.

And another reason why this post feels like trolling.
Reading source code is not something you do on a whim.  It is similar to saying I picked up _War and Peace_ for some light reading.
👍  ,
properties (23)
authorbuilderofcastles
permlinkre-alcibiades-how-to-be-a-real-programmer-20161113t161207046z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-13 16:22:24
last_update2016-11-13 16:22:24
depth1
children2
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length2,638
author_reputation274,121,528,952,841
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,757,988
net_rshares4,972,400,439
author_curate_reward""
vote details (2)
@alcibiades · (edited)
There's a difference between encouraging someone to check out React or some other framework and **judging** them because they still stick with their chosen one. It's maybe nice to learn it, but who are you to choose their learning path.

As for the syntax, I clearly said that you don't have to memorize the smallest documentation rule of some framework or library. Why should I need to know how to layout Bootstrap slider if I can go and copy it in 15 seconds? Do you know how every lodash function works? That's why the documentation is for and that's kind of syntax I was referring to.

As for the code sharing, it can definitely be a gray area if someone's starting out, playing with code and they come up with something interesting and want to share it with other developers, to see what they think or if they have some suggestions.  Never said you should share the backend you're working on in your company. I believe that's a common sense. Is reading a jQuery source code bad thing? I said do it for learning purposes, not 'on a whim'.
properties (22)
authoralcibiades
permlinkre-builderofcastles-re-alcibiades-how-to-be-a-real-programmer-20161113t173342434z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-13 17:33:42
last_update2016-11-13 17:50:18
depth2
children1
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,042
author_reputation494,941,341,451,500
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,758,340
net_rshares0
@builderofcastles ·
I understand your statements, and think I know where you're coming from.
So all of my comments still stand.

If you are trying to teach a geek tact, then you start off giving examples of how "normal" people take their statements.  And then give examples of how to be more tactful.
Else, what you have written is just very very confusing.  As in, "why would anyone be offended at being offered advice?"  The problem is target audience and mental frame of reference.

Syntax is how you specifically tell the computer what to do.  It is exact and specific to the language you are using.
What a library function does, and its arguments required are not syntax.

A silly little browser game is something you can read.  And it is good to do such things just to see things like formatting and structure.  

jQuery is really just snippits of code.  They are small, encapsulated functions.
The actual framework is in the browser.  The call backs and triggers are also in the browser.
All of the real program is happening in the browser.  
So, sharing these snippits of code is really easy to do, and really easy to read.
They are shared all over the internets.  Go ahead and share more.

But these things are not programs.  Even the little things I wrote back in CS class are a slog to read.  Everything since then requires understanding the org chart and then drilling down.
properties (22)
authorbuilderofcastles
permlinkre-alcibiades-re-builderofcastles-re-alcibiades-how-to-be-a-real-programmer-20161113t180410990z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-13 18:14:30
last_update2016-11-13 18:14:30
depth3
children0
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length1,366
author_reputation274,121,528,952,841
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,758,545
net_rshares0
@hellstorm ·
The final point rings very true. The adage to 'always be coding' is absolute nonsense. Whether you see coding as an art/craft or simply a paid job, no one is *always* doing the same thing. A musician isn't playing her instrument every waking minute, and a plumber isn't fixing his clients' pipes every second of the day. Both need time off to pursue other interests. Software developers are exactly the same.
properties (22)
authorhellstorm
permlinkre-alcibiades-how-to-be-a-real-programmer-20161115t115544960z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-15 11:55:45
last_update2016-11-15 11:55:45
depth1
children0
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length408
author_reputation0
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,770,738
net_rshares0
@i-like-computers ·
nice post
i'm programming for about 5 - 6 years and i'm by far not the best
enjoyed reading
👍  , , , , , ,
properties (23)
authori-like-computers
permlinkre-alcibiades-how-to-be-a-real-programmer-20161126t110905265z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-26 11:08:54
last_update2016-11-26 11:08:54
depth1
children1
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length91
author_reputation120,163,348,531
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,849,621
net_rshares30,547,336,324
author_curate_reward""
vote details (7)
@alcibiades ·
I'm glad you enjoyed it!
properties (22)
authoralcibiades
permlinkre-i-like-computers-re-alcibiades-how-to-be-a-real-programmer-20161126t115258020z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-26 11:52:45
last_update2016-11-26 11:52:45
depth2
children0
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length24
author_reputation494,941,341,451,500
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,849,688
net_rshares0
@klye ·
THIS..

The  "racism" between code languages is SILLY. Some languages are better for certain tasks over other and most coders have a fave.. But discrediting someone elses code-fu on the premise they use something different is dumb.
👍  ,
properties (23)
authorklye
permlinkre-alcibiades-how-to-be-a-real-programmer-20161114t004711615z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-14 00:45:24
last_update2016-11-14 00:45:24
depth1
children1
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length231
author_reputation412,341,527,771,769
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,760,561
net_rshares5,989,159,227
author_curate_reward""
vote details (2)
@alcibiades ·
Nicely said, that was my point.
properties (22)
authoralcibiades
permlinkre-klye-re-alcibiades-how-to-be-a-real-programmer-20161114t070837632z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-14 07:08:39
last_update2016-11-14 07:08:39
depth2
children0
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length31
author_reputation494,941,341,451,500
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,762,022
net_rshares0
@pirate ·
I know how , Just start programming and you'll become one.it's simple really. Programming is something that we don't read to start doing it , it's something you should start doing immediately and you'll get better at it by time.
👍  
properties (23)
authorpirate
permlinkre-alcibiades-how-to-be-a-real-programmer-20161113t153840501z
categoryprogramming
json_metadata{"tags":["programming"]}
created2016-11-13 15:38:45
last_update2016-11-13 15:38:45
depth1
children0
last_payout2016-12-14 19:57:21
cashout_time1969-12-31 23:59:59
total_payout_value0.000 HBD
curator_payout_value0.000 HBD
pending_payout_value0.000 HBD
promoted0.000 HBD
body_length228
author_reputation495,574,143,720
root_title"How to Be a "Real" Programmer"
beneficiaries[]
max_accepted_payout1,000,000.000 HBD
percent_hbd10,000
post_id1,757,699
net_rshares239,794,545
author_curate_reward""
vote details (1)