Few Things I Wish I Learn When I Still A Newbie Software Developer

Some – I learned In a hard way since I am occasionally doing few listed on this list, some of it are from observing others for these past 8 years.

1. Done

80% done is not done. Be honest of your progress. Do not think “I can do this at night or on weekend” is an healthy attitude. It will burn you and (always) the team. Share difficulties that you may find. Be honest and be clear — Your peer cannot read minds! enforce them to read REWORK if necessary! smirk

We will finish this specification, then when it is done and approved by QA, then you have my permission to DONE – Bane

2. Emphasis on Done

Read point number one – and back to this point again. Re-read point number one and then continue.

3. Always Irks Me

Misspelling is wrong – even if it’s a comment or variable name e.g. Transatcion. If you let this happen. OCD devleoper will sufre (no seriously – this will be hard to rafector) – did you notice my deliberate misspelling? feel irked about it?

4. The Sure Way To Avoid Chaos

Always prefer SuperLongVariableNameButMeaningfull compared to foo.

5. The Reason For Everything

Even though we don’t compensate for code-quality (even if we do we still deliver quality). If you think that a code is a ‘compensation of quality’ – Ask Fellow Dev. There’s no compensation of quality – everything must have a reason.

6. Senior Vs Junior

There’s no such thing as Junior or Senior Developer. There’s Experienced and a young pandawan. Good Experienced developer will not let young pandawan to to experience the same mistake. So learn from your experienced peer — as for the experienced – learn the new minds from the young pandawan. Read this in Morgan Freeman’s Voice “We are equal” (OK. I know it’s Padawan – but Pandawan sounds better)

7. Changes = Challenges

Embrace changes, consider it as a challenges. Yes you may found most of the time we curse ‘Change Request’ – but that from realistic business point of view. From Dev Point Of View — given unlimited money and unlimited time — it is all possible (yes this is a sarcasm – but the point is – do not swim against the current – you will break)

8. Make A List

List your to-do list. On a paper, task-list, issue-tracker, book, post-it or your bleep smart phone. Seriously.. make a list.

9. Post-Mortem

Post-Mortem you past success or failure. Why? so you can identify What is Wrong – Fix it – or if it’s irreparable – brace yourself for future problems (TODO: put brace yourself … is coming meme here)

10. Feature

One working cool feature is nothing – test it – show it – keep calm and move on. It’s nothing compared to the Pride that your solid work is being used and affecting life of real people – so finish it. Keep Calm and revamp that hidden easter egg.

11. Other’s Perspective

Put yourself in other’s shoes. Specially your user. If a feature is a pain in the ass to use. Then it’s a pain in the ass to use.

12. Testing, Testing, Testing

Testing – Make an automated test if it’s necessary. Go wild. e.g. What if there’s no internet connection? naah.. that only happen in 3rd world countries — oh wait. We are in it.

13. Design All States

Design — always design a full state. a half-full state and a blank-state. Remember your Pinterest-like thumbnail layout can look like crap if there’s no content.

14. Crappy Developer Will Always Do This

Do not put NSLOG, Log.error, debugger on production code. Do not put commented code on production code – seriously – we live in the age of distributed source control – where you can just type or click-click-click to get the previous source-code.

15. Deployment Is Magic

Deployment – Murphy’s Law. Things will go wrong on the most epic timing possible. Brace for it — Expect for the best and prepare for the worst.

16. Bug – Taken

Bug – each time you find intermittent bug. Chant this in Liam Neeson’s voice

I don’t know where you are, I don’t what you intention are. If you are looking for ransom, I can tell you I am working for a new/poor/equity-promise startup that promise me things even without any legal-written-agreement. But what I do have are a very particular set of skills; skills I have acquired over a very long sleepless-nights-streak. Skills that make me a nightmare for bugs like you. If you let my software go now, that’ll be the end of it. I will not debug for you, I will not pursue you. But if you don’t, I will debug for you, I will locate you, and I will fix you

It’s a long chant – but trust me. It works! wink

17. Avoid Burn Out

Burn Out! it is the greatest enemy of Software Engineers, if it’s there – then – it’s hard to cure. It will creeping out on you. Specially if you have a long-unfinished-dull-project or shitty-project-managers. It’s the major reason of retention and major reason for lack of quality. People will leave because of this. I don’t have any good advice in curing this – but I mention it in this list for you to avoid it. As for me – I always tried to creeping in something new in my projects to makes things interesting.

18. Peer Review

Even the best Developer will make mistakes – Even your super perfect dream team will go clumsy on some details and forget things. Peer Review is not act of underestimating-intelligence – it’s the act of guarding each other’s back as a Team.

19. Find A Mentor

Really, when you find people with a lot of experiences. Observe and Listen to them. Make them a Mentor – learn from their past mistakes and absorb their wisdom (sometimes.. your current processing power will not understand. It’s OK. Keep the learning data somewhere in your brain – and someday it will just snap! as if you have an upgrade in your brain of something). I know – I’ve experienced the enlightenment in Project Management because of this learning data from my previous Senior Project Manager 😀

And then when that it just SNAP! happen – don’t forget to thank them.

20. StartUp is Not Easy

No seriously, this is a long unforgiving place of multiple of despair. It’s not the idea – Try to lookup for many failed startups in your City and you’ll realize that it’s not always about the idea. It’s primordial soup of execution, people, luck and destiny entwined by chaos and uncertainties. So it will need good physique and mentalities of run the run, walk the walk and fly the flight. Behind overnight success of 1 billion club of startups – there’s multitude of failures.

You will get wrong all the time, but eventually .. you will right one-or-two times.

Leave a Reply

Your email address will not be published. Required fields are marked *

%d bloggers like this: