Good programmer skills/habits

Dear Sup Forums

I am an engineering undergraduate who managed to get into an internship at a good software firm. I have the programming skills and know-how in order to succeed there, but as an engineer by education, I feel like I'm missing a certain level of polish and "etiquette".

What are skills and habits that set a professional software engineer apart from an amateur one. ( version control, development franeworks etc?)

I want to use this information to prepare myself. Thanks!

This in no way answers your question.
But why is Haskell on that image twice while others aren't? Fuck that triggers me.

95% of programmers are sloppy as fuck

They get away with it because management has no clue what they are doing and just sees pretty looking number and coding jargon.

>others weren't
Scala makes two appearances.

Physicist here
Unless we are writing quick and dirty code (in which case we are the worst coders), we actually make code relatively clean.
Protip: Dennis Ritchie majored in Physics.
Honestly engineers probably write better code than CS majors, especially with their work ethic.

Build modularly.

Get something to work then improve the shit out of it.

Reduce the amount of code you're repeating and always remember to clean up.

Finally, install Gentoo.

kek
Sadly true

:( Butthurt here, wtf man
That's probably because of faggots that only take CS for the money or they don't have a passion for it, I have friends that write shit code that werks and other ones that actually like this shit and write beautiful code.

Learn how to use a debugger when analyzing code. It makes life easier.

When you arrive at the solution, analyze the code to see what can be done better and time sections of the code to see where bottle necks are. This can help to build more effective code. Cutting computer performance (like putting it in power saver mode) can exaggerate where the bottle necks are.

Probably other shit you can do but this is what I can think of at the moment based on my experience.

Knowing how to actually program and getting paid for it is what sets apart a professional from the rest.
Also, it takes 10 minutes to learn how to use a version control system.

Don't fall for the emacs/vim meme
Comment your code if it's not clear what it does or how you got it

Actually read the documentation for whatever tools, languages, etc you are using. Very few people do this, they've mostly just gathered together a random set of behaviors that manages to sort of work.

When you are unsure of something use stackoverflow to get yourself on the right track (sometimes you don't even know what question to ask, for example) but there are truly only a handful of answers on that site really worth reading, the rest are just bastardized versions of what you'd find in the actual source material.... so go to the fucking source material.

Ask your employer to buy you books, they probably will and they might already have some sort of subscription to O'Reilly or whoever.

what would you recommend then
vscode? eclipse? gedit?

Everyone in this thread assumes you're talking about programming polish, but don't forget people skills. Try reading "Team Geek"

I think there's a bias toward sloppy code. Much of the bad code I have seen professionally was bad because it had to be; code that looked like it could be better, but try as we might there really was no better way to meet management's ridiculous requirements to build a Frankenstein of a code base with tools that make no sense for the job.

Be sure to know what the software you're writing is supposed to do, and in doubt get your superior to confirm it's the expected behaviour
(a.k.a write tests)

Cconsider the GOTO. Only when you understand why you should never use it will you finally be ready to use it

I'm still in the bad habit of writing sloppy code and taking a second pass to clean it up. Don't do that. Take the time to do it right the first time.

Also never, ever use an internal style guide. Adopt someone else's style guide. No modifications. Because if nobody on your team is responsible for the style guide nobody can argue.

Only reason I am joining team vim, is that every linux machine has it, linux servers, clusters, etc. it is the defacto command line text editor.

ed is the standard text editor

Which distros come with ed but not vi/vim?

I don't think there are any. But there aren't any that you can't install in, so I don't understand why would you use vim.

*codeblocks

Just use a modern editor that can open files via SSH.

>but that's not what we did in the 1980s
>muh autism refuses to acknowledge change

Learn to write unit tests, always keep things simple, code reviews are good, too.

Don't be indian

You immediately write better code than the majority of programmers

>especially with their work ethic

Get you off your high horse. Many people can write clean code if they don't have to meet tight deadlines.

I think a large part of it is that the CS crowd is full of "everyone except me is retarded" autists

this

Until you try merging and something breaks.

I've seen a program that was just 1k lines written by a physicist which was linked from an article on fluid dynamics I've been reading. Never. Fucking. Again.

>Poo in the loo

this so much.

I'm one of them