On Wednesday, December 6, 2017 at 2:14:40 AM UTC-6, Percival John Hackworth wrote:
[...] > [...] > The good people (e.g. the friends I asked for advice) are > to busy to do such little projects to bother. Good work is not cheap. And cheap work is not good. > So the market is left with Junior people in India making > crap. It's not a question of them taking jobs away from > U.S. developers. It's a question of the good ones already > have work. Can we train Joe to setup Wordpress and secure > it or write a Java Web site when all he's done before is > manufacturing or worked in a grocery store. Not easily, no. There are certain fundamental personality attributes and natural inclinations that lend themselves nicely to writing code. (1) Strongly self-reliance This cannot be stressed enough. If you're the type of person who requires a micro-manager to hover over your shoulder all day telling you what to do, then writing software is _not_ for you. (2) Naturally analytical If the greatest thought that has ever entered your mind is "Hmm, i wonder what the Kardasians are doing today?", then writing software is _not_ for you. There are plenty of department stores who could use another brain-dead sales rep. OTOH, if you find yourself intrigued by the inner workings of just about every system and process in our universe, then you may be an excellent candidate for this field -- among many other mentally challenging fields. (3) Logically inclined If logic did not come naturally to you, or you feel that logic is nothing but the philosophical penchant of sadistic pedantics, then writing software is _absolutely_ not for you. You simply cannot write software unless you possess a strong grasp of logic. (4) Exceptional problem solving skills Problem solving requires first breaking a problem structure down into its component parts using your analytical skills, and then applying logical solutions to each of these components in a manner that will satisfy the whole. Pragmatics is often your best friend. But you must not loose sight of the bigger picture. For if you dismiss the delicate and synergistic interplay between these components, your naive solution will collapse on itself. Problem solving requires thinking deeply in the abstract using metaphors, applying diverse methodologies, and identifying the weak spots in your proposed solution. Typically there isn't a perfect solution. For, if there were a perfect solution to every software problem, we could automate the software development process. Code is not something you just yank out of your colon like it were a fictional story for entertainment purposes, no, it's called Engineering for a _reason_. The remainder can be taught, and mostly a matter of memorization. Any idiot of average intelligence can learn the syntax, structural formatting rules and library contents of one or more programming languages, however, if they lack the aforementioned personality traits and natural skill sets, they can't do much of anything with such knowledge, and essentially, all they have accomplished is to fill their head with useless facts. Facts are only useful when they can be applied to solve problems. Short of that, they are mental refuse. I once encountered a most annoyingly uninformed dolt who quiped: DOLT: "Programming is easy! Once you learn the langauge, it's just a matter of fill-in-the-blanks." ME: "Oh really?" o_O ME: "Are you literate in the English?" DOLT: "Of course i am!" ME: "I see. And are you literate in English at an _advanced_ level?" DOLT: "Of course i am!!!" >:-( ME: "And does being literate in the English language necessarily mean that you could author a best selling novel?" DOLT: "Uh? Uh? (*sigh*) Probably not. No." :-'( ME: "Hmm, and could you author _anything_ that is worthy enough to be included on the shelves of a respectable book store?" DOLT: "Muh... Muh... Well, maybe!? :^|" [Hope springs eternal!] ಠ_ಠ ME: "And how many books have you authored thus far?" DOLT: "Well nothing yet. >:-(" ME: "Okay then." ME: "Next time, think before you open your mouth." > Other groups aren't so nice to beginners - the perl group > is brutal and tell a student to do their own homework. There is clear difference between requesting advice on one small detail that is unclear, and positing a verbatim outline of a homework project and then expecting the group to cough up a complete solution on a silver platter. In the latter case, the student should be admonished. However, another approach is to offer an absurd solution. One which produces the correct result whilst being structurally, practically, and/or semantically a total train wreck. The instructor will "know". ;-) [Hope springs eternal!] ಠ_ಠ -- https://mail.python.org/mailman/listinfo/python-list