Earlier quoted context omitted.
Apprenticeship has been a thing as long as professions have existed. A common way to justify training an apprentice is to indenture them - they agree to work for you for a set number of years at a given wage, in exchange for training. Then you get professional organizations who negotiate on behalf of trainees/apprentices to make sure that the training wages are fair and the conditions aren't too onerous. Membership i…
Nobody's going to accept indentures in this day and age.
The Programming Talent Myth (2015)
101–110 of 146 posts
Re: The Programming Talent Myth (2015)
#102> > The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned. This may be true if your definition of programming is the literal act of writing code / recalling syntax, and learning new tools. Of course, that's not really what programming is. That's the easy part. Programming is about problem solving, code is simply the tool. Critical thinking/problem solving ability,…
I do believe these skills can be learned, but it's the enjoyment I derive from these things that I believe is the difference between some people and I. When I was in junior high I would do various logic problems for fun. I asked for nothing but a TI-85 for my birthday one year. There probably are people who are better than me at coding who hate the work. But I've hated every job I had until someone started paying me…
Programming is a form of expression for me, and I derive great satisfaction from solving and creating software which truly helps the users I work for. On the the other hand my lack of detachment from 'myself' and 'my work' also can cause some unnecessary pain at times, but it's a work in progress.
If anyone has achieved the balance I seek, I'd be glad to hear their story!
Re: The Programming Talent Myth (2015)
#103> > The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned. This may be true if your definition of programming is the literal act of writing code / recalling syntax, and learning new tools. Of course, that's not really what programming is. That's the easy part. Programming is about problem solving, code is simply the tool. Critical thinking/problem solving ability,…
That's not to say problem solving is not extremely important, but the time suck created by bad tool use (or not using tools out of ignorance of their existence) ultimately reduces the productivity of a programmer, or in some cases, whole teams.
Re: The Programming Talent Myth (2015)
#104Earlier quoted context omitted.
Your calling them "skills" prejudices the answer. My best understanding is that they aren't skills, they are hardwired abilities. My best guess based on research that I've seen on IQ is that about half of the hardwiring is genetic and half is a result of childhood upbringing, but by adulthood they are not readily changed. That said, we build concrete skills around how to make the best use of those abilities. We build…
> several who have taught CS for decades tell me that most students simply can't "get" pointer arithmetic or recursion Or maybe they're just bad teachers.
Maybe so, maybe not. However I never had trouble when they tried to teach me things. And have heard good things from others who they taught.
One of the people who expressed this basic opinion to me is https://www.amazon.com/Randal-Schwartz/e/B000APA744. He is also someone whose expository abilities are widely recognized as being excellent. And he is also an example of a self-taught programmer with no degrees beyond graduating from high school.
Re: The Programming Talent Myth (2015)
#105I used to be a "rock star" programmer. I could run rings around my coworkers. I wrote an embedded OS for running machine tools (I had help.) Back then, you read books and memorized everything. I knew x86 assembly and could use a logic analyzer to debug my code. This was in the 80's. Now the amount of knowledge required to do even mundane tasks is an order of magnitude more. No one can memorize all the APIs and framew…
>you read books and memorized everything. Why did you have to memorize everything? I have also done x86 assembly. You remember what you can. You look up the rest. Same today.
Looking stuff up took a lot longer then. It's the difference between firing up a search engine and typing words versus getting in your car, driving to the library, finding parking, walking to the door, finding the card catalog, finding the right card in the catalog, finding the right stack, finding the book on the shelf, scanning the book index, then finding the right page in the book. Memorizing had a better payoff back then.
Or think of it another way: looking stuff up today is like accessing L2 memory, and back then it was like a cache miss, where you had to take a trip out to disk before you could continue useful work.
Re: The Programming Talent Myth (2015)
#106> The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned. Aren't these all talents? * learning many things * learning difficult things * recalling things you've learned when you need them If something is a skill, one would expect all engineers to get better at it with practice. But there are many abilities in engineers that don't seem to work that way.
Learning is a skill you can get better at, so it's just a dependency. Learning is not an unchangeable talent. Some books that will help you learn better: * Power of Intuition, about naturalistic decision making - https://www.amazon.com/Power-Intuition-Feelings-Better-Decis... * How Learning Works - https://www.amazon.com/How-Learning-Works-Research-Based-Pri... (my review: https://codewithoutrules.com/2016/03/19/how-…
You know, I just don't think it's realistic to expect everyone to be able to learn anything. Certainly an expert in a field can come from anywhere, but not anyone can be an expert.
I don't think you can go through those books, however excellent, grab a random name from the phonebook, and then teach them how to do differential equations. Or to debug corrupted stacks in a multithreaded C++ program.
Re: The Programming Talent Myth (2015)
#107> > The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned. This may be true if your definition of programming is the literal act of writing code / recalling syntax, and learning new tools. Of course, that's not really what programming is. That's the easy part. Programming is about problem solving, code is simply the tool. Critical thinking/problem solving ability,…
I do believe these skills can be learned, but it's the enjoyment I derive from these things that I believe is the difference between some people and I. When I was in junior high I would do various logic problems for fun. I asked for nothing but a TI-85 for my birthday one year. There probably are people who are better than me at coding who hate the work. But I've hated every job I had until someone started paying me…
Right. Can (or should) appreciation and enjoyment of a particular kind of work be taught? Or is it an innate quality... a talent, even?
Re: The Programming Talent Myth (2015)
#108Re: The Programming Talent Myth (2015)
#109> > The truth is that programming isn't a passion or a talent, it is just a bunch of skills that can be learned. This may be true if your definition of programming is the literal act of writing code / recalling syntax, and learning new tools. Of course, that's not really what programming is. That's the easy part. Programming is about problem solving, code is simply the tool. Critical thinking/problem solving ability,…
> We wouldn't judge a carpenter on e.g. his/her ability to use a saw We absolutely should because it's a fundamental aspect of doing their job. The difference between me and a professional carpenter is literally the ability to use tools effectively to build an item. I know whether to use a dovetail or dowel joint as well as any professional, but I guarantee the pro will achieve a better finish in much less time. It's…
The problem is that we don't pay engineers to crank out pre-designed classes in a specified language with a specific editor. We do pay day laborers to go dig a certain trench over there with these particular shovels and picks.
Software engineering is so much more open-ended. We're paying people to "go help the team make the yard more water efficient".
In other words, if we had more well-defined roles for "coder" versus "engineer" versus "architect", it might make sense to test on the ability to use tools, but in general people in this thread aren't making that kind of distinction because the tech culture in general doesn't make a clear distinction. Otherwise, we'd have "coder" job interviews that didn't include algorithms or open-ended problem solving questions.
Re: The Programming Talent Myth (2015)
#110Earlier quoted context omitted.
will you pay me for those 3 days' work? and tbh it's not even the money, it's my non-existent time.
No, but I will let you put what you created on GitHub. That becomes part of your portfolio. Put a link to your GitHub account on your resume. If you already have enough sample code, there may not be a need to provide more.