I've started taking my 9-year-old son through the book, and though it's crazy how large a vocabulary you need if you really wanted to understand everything, that's not actually necessary and he's able to follow the directions and make progress.
Tales of coding from a beginner
81–87 of 87 posts
Re: Tales of coding from a beginner
#82Just what the doctor ordered! I'm just starting out[1] and recognise all of these points, especially number 4 even though on first glance it might seem the wrong attitude. Every time I run into something new I feel the need to 'fully' understand it before moving on. With such a vast corpus of information out there and a lifetimes worth of skill development in just one particular branch (database admin anyone?) I have…
What I've found is taking on the attitude of "make it work, then make it right" works well for me.
With anything moderately complex and new, you are never going to fully understand everything and get it right the first time. The best strategy is just hack something together until it "works", then constantly be revising and refactoring from there. Instead of spending hours architecting, reading and planning just jump in and start coding.
Or else you just end up in analysis paralysis or over engineering.
I'm working on a project which uses Golang, swift (ios) and Postgresql which are all new technologies for me. I haven't read a single book on any of them, I just jumped straight in and started developing. And bit by bit, line by line I have made good measurable progress.
"Plan to throw one away" applies here also - http://c2.com/cgi/wiki?PlanToThrowOneAway
Re: Tales of coding from a beginner
#83Earlier quoted context omitted.
"Software engineering" certanly feels better but I think generally our work is closer to a craft than an engineering practice; imagine if we built bridges, tunnels and planes as we build software - catastrophes every day!
As someone who learnt to code as a kid, then studied and worked in civil/structural engineering, then ended up later on back in software, I do find comparisons (somehow always involving bridge analogies) between software engineering and 'traditional' engineering to always be off somehow. Most traditional engineering projects are not magical bastions of rigor and certainty. It is really only in very large budget or cr…
As with critical civil/structural engineering projects, there are software development projects built with correctness in mind. I've worked on a few of those, mostly in aerospace and VLSI simulation in the late 70s til the early 90s, and the level of engineering was very high.
Fast forward two decades to the world of web development and corporate IT and, wow, the lack of rigour is simply abysmal. I can imagine the same been true in the housing/building sector.
Re: Tales of coding from a beginner
#84Earlier quoted context omitted.
The funny thing is that there is a mathematical symbol for assignment, the left-arrow, "<-". At least it's used widely in algorithmic notation to show assignment- and also in R.
I program a decent amount in R, and this left-arrow assignment operator is incredibly annoying. I believe it's a holdout from the days when there was a single key that would input '<-'.
Re: Tales of coding from a beginner
#85"3. Equals is a lie: = ≠ =" This is why languages like Pascal (and it's descendents) use := as assignment. There are contradictory opinions about sytnax among programmers. Many programmers don't like the example assignment syntax above, but then many programmers also say that syntax is a relatively minor aspect of learning a language (even though the syntax of a language shapes the way you think about solving problem…
Pascal was always my least favorite language, because it never felt practical. For instance, its assignment requires two shifted keystrokes. Whereas the equal symbol requires one non-shifted keystroke.
In my ideal world, ISO would just standardize programming symbols. Then, languages could build around those common symbols, and then better input devices could be designed.
It amazes me that for as much money we spend on software (How many millions of programmers are there in the world?), we're still using a modified typewriter as our primary input device. Look at all the nicely designed specialized input devices we have for video games; surely we can come up with something better for programming.
Re: Tales of coding from a beginner
#86It's not normal to struggle with installing modules / libraries. It's just Python sucking. Normal programming languages rarely give you this kind of headache.