DEV Community

loading...

10 Things Every Software Developer Should Know

javinpaul on May 04, 2019

Disclosure: This post includes affiliate links; I may receive compensation if you purchase products or services from the different links provided i...
Collapse
jadebeer profile image
Hannes de Beer 💥

The one thing almost nobody ever focuses on is: people skills.

Learn how to work in teams, learn how to communicate. Learn what makes you tick and how to respectfully communicate that. Become acquainted with your strengths and weaknesses (yeah we all have some) and how this can contribute to your team's success and your growth.

We don't work in solitude - almost all ventures consist of teams. And if you do happen to be a one-person coding machine, you need to be better than ever dealing with people if you hope to understand your users and sell your product.

Invest in your soft skills, build your relationships. Make being a people's person part of your personal brand.

Collapse
javinpaul profile image
javinpaul Author

100% agree but do you think you can learn this? I found it's more natural and some people have and other are not so great. Though, I did benefitted a lot from John's Soft Skill book, I still thing it is one the hardest thing to learn or improve.

Collapse
perigk profile image
Periklis Gkolias

How to win friends and influence people is very good too

Thread Thread
javinpaul profile image
javinpaul Author

yup, that's another nice books. thanks for suggestion.

Collapse
jadebeer profile image
Hannes de Beer 💥

I think it is something that you can work on and learn. Development draws a lot of introverted people, lots of techy, geeky people. Sometimes it's hard for us to spend energy on others but we need to work on those skills. One thing hiring managers may tell you, is that all those technical skills can be learnt but someone who doesn't work well with others... that's not so easy to remedy. So don't stop working on those soft skills.

Thread Thread
javinpaul profile image
javinpaul Author

Thanks @jadebeer , agree, persistence is key here. Thanks

Collapse
rachelsoderberg profile image
Rachel Soderberg

Absolutely you can learn soft skills and communication. I would agree that it's one of the most difficult things to learn and improve on, but it's also one of the most rewarding.

Collapse
classmethods profile image
Mat Miller

I agree. A programmer needs at least a reasonable set of people skills. A strong understanding of technical language can really help compliment that as well. If you can describe your work and you can explain coded solutions in verbal communication, then you can open up conversations you didn't previously know you could have. Adapter pattern? Singleton? Yup.

Collapse
elabftw profile image
eLabFTW

Excel? Nope. What's the point of spending time with a proprietary microsoft product that doesn't run on GNU+Linux??

Use python's Pandas! You talk about data science, but nobody uses Excel for that!

Or at least, not Excel but Libreoffice Calc ;) Programmer's tools must be free/libre!

Collapse
javinpaul profile image
javinpaul Author

I knew, I am going to receive a lot of flake for Excel, don't know why people hate it so much but I find it quite useful :-)

Collapse
pizzagorgonzola profile image
pizzagorgonzola

So we either agree that Excel is useful or we hate it ? It's just not being used much to analyse big data, your recommendations are a bit too windows centric, on a Mac we will not use visual studio code for example. I also think JavaScript is a better choice than python, as it's, obviously the only language that can be used on both ends of a web site. And it's a lot faster than python. Java is on its way out, didn't notice ?

Thread Thread
biffbaff64 profile image
Richard Ikin

Java isn't dead yet. Don't write it off too soon.

Thread Thread
jrussellsmyth profile image
jrussellsmyth

Not sure why you are throwing out visual studio code just because you are on a Mac. I am a full time Mac user and spend about 80% in VSC. Hell I even use it as my primary terminal as I always have it running and it stays out of my way.

And I use it for Java, Go, JavaScript/html/css frontend, JavaScript backend, shell, Json, yaml, XML, markdown... I manage docker with it ..., Interact with my git repos...

And I'm a card carrying anti-microsoft Linux/Mac geek

Thread Thread
stojakovic99 profile image
Nikola Stojaković • Edited

Exactly. In my opinion, VS Code, TypeScript and C# are the three best things Microsoft gave us (even though I don't use C# we must agree that it's an amazing language).

Collapse
ladebug5 profile image
LaDeBug

ha-ha, have you seen the Atlassian office? Even JIRA developers use whiteboards with markers everywhere, lol! So, only Excel, only hardcore!

Collapse
sidcool1234 profile image
Siddharth Kulkarni

This article is mostly an advertisement for Udemy courses.

Collapse
javinpaul profile image
javinpaul Author

Not really. The purpose of those courses/books are for further learning these skills. My readers always asked me for recommendations and having them on the article helps them in further learning and taking action.

Collapse
hoozifachi profile image
hoozifachi

1 should be "don't store passwords in plain text."

Collapse
javinpaul profile image
javinpaul Author

:-) Indeed

Collapse
paddy3118 profile image
Paddy3118

OK, I'll bite: You mention Excel and why people might object? It is because you also mention the need for versioning, diffing, and good debug abilities in other topics -all of which spreadsheets are terrible at.

Is that equation replicated for the whole of that row? Is that graph for the whole of the table? Has someone edited a value? Is that the current template? The manager said they only changed the header format but now...

Learn enough Excel to replace it with more programmatic tools like Pandas.

Collapse
aarone4 profile image
Aaron Reese

In my 20 years if experience, there are business needs that have to be met and the business cannot wait for IT to find a solution. Software (in the loosest sense) will get written, the only question is whether IT are involved and there is source control, versioning, documentation etc. When the business writes software, it uses Excel, so you better know how to dissect the mess you are about to inherit.

Collapse
paddy3118 profile image
Paddy3118

... you better know how to dissect the mess you are about to inherit.

But try not to prolong the agony. If they have asked a programmer to look at it, then, as a professional, you need to emphasise the risks.

Collapse
javinpaul profile image
javinpaul Author

Hello @paddy3118 , you have a point but for more general uses like VLOOKUP, applying some formulas, converting list to CSV, some graph to show performance result, Excel is perfect tool. I agree that it's not for a serious stuff but if you use it as tools, its very handy.

Collapse
paddy3118 profile image
Paddy3118

Try and keep Excel on the output periphery. You give someone an output that they may choose to load into Excel, but never use Excel in the flow itself, as it is so hard to recognise problems under that slick GUI.
P.S. I should point out that I failed to praise all the good points you made.☺️

Collapse
kian1991 profile image
Kian Lütke

I think he is totally right. Most companies are somehow using Excel and you will get confronted with it somehow. So having a good knowledge in this would be very helpful

Collapse
javinpaul profile image
javinpaul Author

Thanks, happy to find somoen who concur my thoughts with Excel :-)

Collapse
aarone4 profile image
Aaron Reese • Edited

Excel is ubiquitous on the office desktop and is often the only programming option to non it staff in an enterprise security model. It gets used as data entry, database and report generator so learning VBA is one if the most pragmatic solutions in my software arsenal. With the integration of power query and the DAX engine for manipulation and presentation of data on desktops with 8+ GB of RAM. Underestimate Excel at the detriment of your career.
Automation of tasks using Excel has one of the biggest ROI for most organisations and is really low hanging fruit
If you can program in any modern OO language then VBA is a sinch and a cheap win for everyone

Collapse
tfutada profile image
Takashi Futada

I agree on that except for Excel??? I usually use Python/R for data science along with ggplot2. In fact i use macOS without Excel nor Numbers.

Collapse
ladebug5 profile image
LaDeBug

Okay, folks, my coding path kicked off with JavaScript simple web apps. I spent bloody long hours digging into the language semantics and didn't see the big picture... An architecture of the project is what you should presuppose from the beginning. Simple infographics like here litslink.com/blog/web-application-... would be of a great use for new programmers.

Collapse
marynaaaaa_ profile image
Maryna

By the way, when you start a new web project, there’s always a question of what architecture to choose. So if you have doubts about which web app architecture to choose, you should learn more about it.

Collapse
endontoddy profile image
Andrew Todd

Nice article. I would have also included 'Writing Automated Tests'. Not to be overlooked :)

Collapse
javinpaul profile image
javinpaul Author

you are right Andrew and actually unit testing is one skill which separates professional programmers from others.

Collapse
classmethods profile image
Mat Miller • Edited

This post provides a nice visual intro. I would recommend giving each topic a quick 15 minute peruse so you might be able to recall it when a fit for use problem arises. Keep a cloud notebook with you for life. Put everything in there that you find useful.

However, be warned of the rabbit holes with various levels of practical value. You really want to learn meaningful skills not just assembling hacks retrieved from google and compiling.

If possible, meet with someone experienced in your community, preferably at an employer you could see yourself working for, and have them help you create a learning roadmap. Without it, just keep in mind, each topic in this article can be 1-10 years to develop expertise. So, why not go in with a plan?

Otherwise, if winging-it is your style, then just download Microsoft Visual Studio C#.NET and buy yourself a copy of Design Patterns by GoF and build out each pattern. You will learn a great foundational piece of programming in days/weeks. Then add unit testing. Then SQL. Finally, you are ready for user interfaces.

I really recommend the book to learn some technical language. It's especially simple and elegant. Martin Fowler is another notable. You need to be able to articulate programming and be able to communicate ideas with others. Otherwise, you will be limited to your own beginnings and google hacks. I witnessed several programmers transform themselves once equipped with technical language. It's like turning a light on.

Microsoft is very relevant in the workplace and Visual Studio and C#.NET is a fantastic tool.

Hope this helps someone.

Collapse
mujeebishaque profile image
Mujeeb Ishaque

brilliant article, I'd say, except for the excel part.

Collapse
javinpaul profile image
javinpaul Author

Thanks Mujeeb, You can leave the excel part then :-)

Collapse
dansayo profile image
Dan Sayo

Great article. I hope you can write another, focusing on soft skills. Like The how to perform an effective search (e.g. googling). And the art of approaching problem solving

Collapse
javinpaul profile image
javinpaul Author

Hello @dan , thanks, I'll try. I am reading Soft Skills book and it's a great books for Programmers and Software developer. I'll write once I am comfortable and applied those tips.

Collapse
eduardonunesp profile image
Eduardo Nunes Pereira

Wonder why you didn't mention Big-O-Notation

Collapse
javinpaul profile image
javinpaul Author

That's definitely worth learning stuff, I'll include it. Thx

Collapse
jswinther profile image
Jonathan S. Winther

Design Patterns. Makes or breaks a developer.

Collapse
nicolasvillalba profile image
Nicolas

Good article!
it looks like there's a typo in the first paragraph in the Excel section

Collapse
pizzagorgonzola profile image
pizzagorgonzola

Yes, 11) use a better spelling checker

Collapse
endtest_io profile image
endtest

How many of those things did they teach you in Software Engineering school?

Collapse
amorued profile image
Amorue Daniel

Wow this was actually nice.