LocalMan
Joined 15 years ago
Joined 15 years ago
I do remember when learning calculus that I didn't really know integration and differentiation until I'd worked through a dozen or two of the homework problems. I could understand in class and nod my head, but would not be able to use that knowledge until I'd ground through enough example problems. That paradigm seems to be true for a lot of technical subjects and must be a result of the nature of human cognition.
And the world is getting even more scientific, more technological and more mathematical.
And those who teach writing emphasize that it is necessary to write a lot. A whole lot.
Recently popular has been the idea that to master any subject whatever requires 10,000 hours of practice. That idea has been attacked and taken down a peg, but not defeated; practice alone is never enough.
I do remember when learning calculus that I didn't really know integration and differentiation until I'd worked through a dozen or two of the homework problems. I could understand in class and nod my head, but would not be able to use that knowledge until I'd ground through enough example problems. That paradigm seems to be true for a lot of technical subjects and must be a result of the nature of human cognition.
And the world is getting even more scientific, more technological and more mathematical.
And those who teach writing emphasize that it is necessary to write a lot. A whole lot.
Recently popular has been the idea that to master any subject whatever requires 10,000 hours of practice. That idea has been attacked and taken down a peg, but not defeated; practice <i>alone</i> is never enough.
Hardware was less reliable, occasionally coming up with the wrong results. One time the result was wrong because the printer had printed the wrong digit! I'd spent hours desk checking the code only to find the code was right. So I ran it again.
It was much more normal for managers to really not know what a computer really is. This included programming and IT managers. One very accomplished boss asked me, in a meeting, how long it took to write a program. What kind of program? I asked. Oh, a general program. That put me in a no-win situation. If I said a year, he'd pop a cork and get all red-faced. If I said two weeks, he'd hold me to it no matter what the program was supposed to do.
1. C: A Reference Manual, by Harbison and Steele. https://www.amazon.com/Reference-Manual-Samuel-P-Harbison/dp...
2. The C Puzzle Book, by Alan Fueur. https://www.amazon.com/Puzzle-Book-Alan-R-Feuer/dp/020160461...
Harbison and Steele has much better explanations than K&R. The Fueur book taught me a lot about C declarations. Declarations are that part of C language that is them most unnecessarily difficult.
You asked about a slightly different question, best practices. But in the real world you'll run into a lot of code that practices below that level.
I haven't done an organized comparison of password managers.
I once had the misfortune of changing from an Algol environment to a Cobol environment. After a year I'd gotten over my revulsion and became fluent and productive in Cobol.
It's like saying English has lots of irrationalities to it, which is true. But if it's your mother tongue and you're fluent that doesn't matter.
Go is not impaired. Go involves a set of sophisticated choices for software engineering, not for computer science research. If you're going to have many millions of lines of code and some shifting around in your staff, you don't want tricky code that takes a long time to figure out, or that obscures functionality, or that obscures bugs.
1. Alternate writing programs with classwork or book-learning. Back and forth.
2. Learn a programming language that a friend knows, so you have a place to get on-the-spot help. Ideally, somebody sitting next to you.
3. Have a computer available. Almost any home computer will do, no need for something expensive. There's plenty of free software you can download, free tutorials, free books...
4. There are cheap classes at some nearby community college or something like that. Finding the time is harder than paying for them.
5. The most important first courses are about a particular programming language, like "Python Programming 101".
6. The most important second courses are probably "Algorithms and Data Structures" and "Computer Architecture".
The idea is to break down the social barrier between you two and make sure he knows you, feels relaxed around you, and knows you're competent. A related important goal is to make sure the boss knows that you two can work together as near-equals as part of a team. That's what being promoted really means, from the boss's point of view.
You've run into a colleague more of a predator than an engineer. I've also been pushed out this way and was foolishly resting on my technical laurels.
2. I left because I got old. Twelve hours of concentration just isn't worth it any more.