Author Topic: Looking for a coding mentor.  (Read 5046 times)

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 40
  • Location: Vancouver, WA, USA
Re: Looking for a coding mentor.
« Reply #50 on: August 29, 2019, 08:41:47 AM »
Being a good coder is  a combination of being 'naturally gifted' at complex spatial relationships, having a great memory for details,  and being self-disciplined. Gotta have all.

There are easy things you can do as a coder, but in general coding is an art form reserved for 'gifted' individuals, in my opinion. Like being good at chess. Studying and practicing chess only gets you so far. The brain has to be chess-friendly too.

My BS in CS and 12 years of professional experience disagrees with you. You need to be able to hold a lot in your working and short term memory*, you need to focus, you need attention to detail, and you need to practice your craft.

I'm one of the most respected engineers on my team and I am shit at spacial relations and chess. But I work on network protocols, so what would spacial relations have to do with it? My favorite part of the job is not needing to deal with three dimensional reality.

* - but there is ample evidence that you can get better at this with practice

EDITed to add - I highly recommend So Good They Can't Ignore You and Deep Work by Cal Newport on growing your career.
« Last Edit: August 29, 2019, 08:44:22 AM by PDXTabs »

ctuser1

  • Handlebar Stache
  • *****
  • Posts: 1741
Re: Looking for a coding mentor.
« Reply #51 on: August 29, 2019, 08:51:42 AM »
You need to be able to hold a lot in your working and short term memory*
* - but there is ample evidence that you can get better at this with practice

Even this bit depends on what kind of programming it is you are doing!

Not-Statically-Typed languages where GUI can't be as intelligent (e.g. Python) - yes, you need a lot of short term memory.

Statically Typed languages where GUI (e.g. eclipse/Visual Studio) does much of "remembering the low level context" - well, you need a lot less short term memory.

You can get better at it anyway!

Also, the more experience you gain, more you learn to get away from thinking in the "imperative" programming style and learn to think in the "declarative" style (while effortlessly translating that to the hopelessly imperative languages of today as and when required). Thinking in declarative style requires a lot less short term memory, and frees up your brain to pay attention to broader context much better.

I have seen wayyyyy too many people go from zero programming skills and zero inclination to becoming successful professionals to believe in any special sauce.

In fact, in my limited data set borne out of experience, the artsy-not-natural-born-engineer types who made the effort (and it requires real effort) to become coders later climb the management ladder much faster!!!

And yes, I have more than one classmates working at Sr-VP/CTO etc levels to have a reasonable (although not statistically significant) data-set on this!!
« Last Edit: August 29, 2019, 08:56:51 AM by ctuser1 »

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 40
  • Location: Vancouver, WA, USA
Re: Looking for a coding mentor.
« Reply #52 on: August 29, 2019, 08:57:37 AM »
You need to be able to hold a lot in your working and short term memory*
* - but there is ample evidence that you can get better at this with practice

Even this bit depends on what kind of programming it is you are doing!
...
You can get better at it anyway!

I'm used to working in large distributed systems. Even with statically typed languages it is complex, no way around it. But I was trying to hammer home that you can get better at it if you practice. That's basically the whole point in So Good They Can't Ignore You.

In fact, in my limited data set borne out of experience, the artsy-not-natural-born-engineer types who made the effort (and it requires real effort) to become coders later climb the management ladder much faster!!!

That doesn't surprise me at all and coincides with my "practice your craft" comment. I work with too many people who have a degree but are just there to collect a paycheck.

ctuser1

  • Handlebar Stache
  • *****
  • Posts: 1741
Re: Looking for a coding mentor.
« Reply #53 on: August 29, 2019, 09:02:53 AM »
I'm used to working in large distributed systems.

So am I!

In my case the complexity comes in because of the brain-dead implementation of the "Reduce" part of the MapReduce.

If our implementation of "Reduce" was as good as the purely functional languages like lisp, then the complexity of "programming" would be no more than anything else. The actual parallelization of tasks is still highly inherently complicated - no way around it!!

I get around it by implementing my own recursive "reduce" (within reason. you can recurse to death if not careful) around any grid tasks.

If programming is not as simple as doing it functionally in Lisp - then someone f**ed up somewhere in the implementation :-)...

PDXTabs

  • Walrus Stache
  • *******
  • Posts: 5160
  • Age: 40
  • Location: Vancouver, WA, USA
Re: Looking for a coding mentor.
« Reply #54 on: August 29, 2019, 09:24:48 AM »
If programming is not as simple as doing it functionally in Lisp - then someone f**ed up somewhere in the implementation :-)...

I'm sorry, what was that last part again? Did you just say lisp?

stashing_it

  • Stubble
  • **
  • Posts: 150
Re: Looking for a coding mentor.
« Reply #55 on: August 29, 2019, 11:13:27 AM »
Some people will be better programmers than others.   And some programmers are an order of magnitude more effective than others.  And  it obviously isn't possible for everyone to be better than average.

There is zero evidence (or even indication) of the hard science variety from any research into human cognition that this might be true!! ***

*** My knowledge in this matter is a decade+ old. If any new research has come to light, then please enlighten me.

Wait, which part do you think is controversial ?

-  No possible for everyone to be better than average -  that's just the old joke, and obviously isn't mathematically possible
-  Some programmers are an order of magnitude (10x) more effective than others ?    I can see this in my own career,  18 months as a programmer, after 12 years as a mechanical engineer.    I certainly see some of my coding colleagues who are having 10x the impact that I am having, launching products, making large scale plans and implementations, leading teams, whilst I am focusing on solving individual bugs and issues.   When I was a mechanical engineer, I'm not sure the level of difference was as great, but I certainly saw people I was 3-5x as effective as, i.e. they took longer, released things with errors that needed to be redone, etc.

I don't know of any hard research on 10x, but it seems evident that there are varying levels of experience and skills.  And it seems to me that programming is a field that is more stratified than many.     My disagreement with the previous poster lies in the fact that I think most people can become quite competent at programming and have successful careers at it.     But I don't think that most people are going to make revolutionary contributions

ctuser1

  • Handlebar Stache
  • *****
  • Posts: 1741
Re: Looking for a coding mentor.
« Reply #56 on: August 29, 2019, 12:33:43 PM »
Some people will be better programmers than others.
...
Wait, which part do you think is controversial ?

1. The post you quoted said programming is about being "naturally gifted".
2. You said "this is probably technically correct (the best kind of correct)"

I think I may have misquoted, or incorrectly deleted relevant parts from your quote.

Point still stands though. There is zero evidence that it is "technically" or any other way correct to say programming is about natural gifts.

stashing_it

  • Stubble
  • **
  • Posts: 150
Re: Looking for a coding mentor.
« Reply #57 on: August 29, 2019, 01:03:52 PM »
Some people will be better programmers than others.
...
Wait, which part do you think is controversial ?

1. The post you quoted said programming is about being "naturally gifted".
2. You said "this is probably technically correct (the best kind of correct)"

I think I may have misquoted, or incorrectly deleted relevant parts from your quote.

Point still stands though. There is zero evidence that it is "technically" or any other way correct to say programming is about natural gifts.
Ah,  I see that this is mostly because my futurama reference may have fallen a bit flat here
https://www.youtube.com/watch?v=hou0lU8WMgo

 I suspect that the magnitude that our opinions differ is relatively minor,    As you will see my clarification in my post about being "technically correct"

Quote
I am in the position of saying this is probably technically correct (the best kind of correct) while at the same time not being good advice.

Here is what I think is technically correct
  -  Some people will be better programmers than others.   And some programmers are an order of magnitude more effective than others.  And  it obviously isn't possible for everyone to be better than average.

and then further
Quote
-  There is a very wide range between the peaks of World champion coder (or chess player) and being competent and effective.    I think that most people could reach above average programmer level, though they may need to work harder than average.   I.e. hard work beats talent when talent doesn't work hard.


If I were asked to clarify my statement, I would say that I think with nearly every area of human accomplishment
-  There is a range of natural skill / ability
-  However, natural ability is almost always dwarfed by the level of effort and skill put into practice / improvement