Jump to content

Does coding ever get easier?

- - - - -

  • Please log in to reply
2 replies to this topic

#1
misao

misao

    Newbie

  • Members
  • Pip
  • 9 posts
A bit of introduction here:

I've been doing a Graduate Diploma in CS, which is pretty much the 1-year equivalent of a degree, for people with a prior unrelated degree. It has been pretty amazing, and I have learnt so much - but then I realize that no matter how much I've learnt, there is just so much more that I need to know! :crying: It could possibly be the crammed nature of the degree I'm doing; 1 year ago, I barely knew how to write Hello World, and now I have written a raytracer in Python, a UI for room navigation in Java, a website in PHP/MySQL/JS, another one in C#/ASP.net, a Sudoku program in C and some simple generators in Scheme...

But I'm rambling. Thing is, when I code for extensive periods of time, I feel so brain-dead and exhausted after. The only comparison I can make to it, is playing competitive chess for 8 hours straight. Your brain literally -aches-. I can not think of any job that would be more demanding, if this is the way it goes on. Most jobs are tiring, sure, challenging, but your brain isn't necessarily going at 100% all the time.

I guess the point of this is: Does it ever get any easier?? Will coding ever become second nature to me, like writing a post? At this point of time it takes so much out of me to get my programs done, and I can't imagine doing this for the rest of my life. I have 3 months off soon, and I'm hoping to really sink my teeth into just ONE language (C++, I think!) so I can get a better basic grasp on things and it should hopefully be better from then onwards.

Or am I doomed to failure and did I just go into the wrong field?

#2
fayyazlodhi

fayyazlodhi

    Programming Expert

  • Members
  • PipPipPipPipPipPip
  • 403 posts
Haaa... this will be a long one but i hope it is worth it.

The post and question really brought out much of the thougths going through out my career. From studying a four year BS CS to being an industry programmer in desktop / web domain for some time, then into embedded, made it my career. While on the way, adding a couple of years of teaching programming courses to BS undergrads.

Comparing very small deliverables with tight time lines vs very large complex state of the art projects, there is an enermous amount of variation with respect to above question.

YES, programming takes a lot of enery and is tiresome. You need to have it in your blood to be really successful and enjoy it for the rest of your life.

However,

Being in blood only refers to that you

1. Enjoy doing it from the first time you learned it and continue to...
2. You start taking pride in building good software and feel great to see it running in real world.
3. You become obsessed with doing every thing programmatically instead of wasting IMPERFECT error prone human mind. i.e. write scripts to make things easy for you every day i.e. if i wrote a function which takes 1-10000 as input and produce a result, GONE are the days when i would put a few runs with random values and see if it fits. I would write a function which gives 1-10000 as input to the original function and dump the result out....

BUT

Every day industry work is full of 'not so interesting' easy to write code, Maintain software (code written already mostly by others and you add small features and fix bugs in it). Say you have similar looking database with 15 tables and you write their interface. Except names and some occassional differences, the flow is pretty much the same. I call this boring but an unavoidable and equally important part of professional software developement.

Every professional spends a lot more time

1. reading and understanding other's code
2. debugging existing code
3. Functionality Testing / writing specs / Performance bench marking / misc etc.

PLUS
4. some time writing new features / code

It is only in 4 that your brain really is spinning all around.
Even in that case, i believe the crucial part is when you are designing a feature / product or devising an algorithm is the one that SHOULD and DOES eats a lot of your brain.

Once you are through with that phase, you can switch on to music while writing code and can spend a full day (14+ hours of coding, may be more for some people) and still be NOT SOO drained.

Some would argue 1 and 2 would also take a lot of effort. But it is NOT the part in which your mind is creating something. So with the passage of time you become better at reading / understanding and debugging code.

A couple of tips:

With more experience (and i personally witness this change in myself over the last nearly 10 years since i have been programming, 4 in university and 6 or so in the industry), you tend to write cleaner and SIMPLE code doing one thing at a time.

GOOD CODE IS THE ONE THAT APPEARS (IN A QUICK GLANCE) TO BE DOING WHAT IT ACTUALLY IS DOING.

So you spend the LEAST amount of effort maintaing / adding to it some time latter (and trust me you will do it more often than you always anticipated) and are NOT drained by debugging issues you created YOURSELF by writing unnecessary complex code.

Think simple algorithms as much as possible and only deviate when really needed. The best solutions (where mine failed) that i have seen in my entire experience were more elegantly written and thefore didn't make the foolish mistakes that i kept pinching my hair for....

With experience you gain confidence

1. Of not knowing a particualr domain (technology, protocol, language) but am certain that you would understand it and reuse / write working code getting what you wanted.
2. Of having been there in that situation before and knows many ways out.

If the above is happening then your every day job becomes easier. And you are okay to take more complex challenges.

If not, then you might need to ask yourself if you are really growing in terms of experiece.

regards,
Fayyaz
Today is the first day of the rest of my life

#3
WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderators
  • 16,831 posts
  • Location:Upstate, South Carolina
  • Programming Language:C, C++, PL/SQL, Delphi/Object Pascal, Pascal, Transact-SQL, Others
  • Learning:Java, C#, PHP, JavaScript, Lisp, Fortran, Haskell, Others
From the sounds of it, you're doing very well. Parts of coding are boring. Parts of it are tedious and require little creativity. Some days my head hurts from intense concentration, others from the mind-numbing nature of what I've done.
Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog




1 user(s) are reading this topic

0 members, 1 guests, 0 anonymous users