The best way to acquire a programming skill - by "skill" I mean a working understanding of a framework, a language or, shudder, very very bad word coming up, engaging shatter-proof scare quotes, a "paradigm" - is by modifying a colleague's well-written code and making it do something different that you actually need it to do. …

COMMENTS

Page:

Claim to fame..

I used to exchange messages with Danny Thorpe on the Borland newgroups! The guy never knew it, but he was a "virtual" mentor to me, I was only a teenager and it was his input that pushed me into programming... wow memory lane.

Re: Claim to fame..

Re: Claim to fame..

heh. good one.

In my foggy memory banks, I seem to recall that original early Pascals were pretty much useless for anything but theoretical Comp Sci kind of stuff (and an argument could be made that even THAT use was stretching things). Borland's hackjob in the Turbo series was, in my ever so humble opinion, the best way to program in MS-DOS. Compiler, editor, linker, and extensive context-sensitive help were all there, just a key-stroke away. You could "touch" anything in the hardware you wanted, throw in Assembly language if you really wanted to super-optimize something (or look macho), and all sorts of neat things (array of functions? check...). I never got into the TurboVision libraries too deeply, since I liked re-inventing the wheel at every opportunity, but what I remember of them was they were pretty solid with a bit of a learning curve. (Probably not as much as most of the Java frameworks nowadays, though.) And all for like $79, with an "educational" version often available for $49.

Yeah, I had a lot of fun with TP 6. I was taught "straight" Pascal in college, but TP let me fully explore the inner workings of the PC. Good times, good times...

The best way to acquire a programming skill

Is to program something non-trivial suited to that language / api / package. i.e. don't write some crappy hello world equivalent. Go all-in and write something which you estimate will take several weeks to write at the least and touches on 2 or 3 major features of the thing. Better yet, open source your efforts, put it up on github or somewhere and make sure to stick it on the CV.

Re: The best way to acquire a programming skill

Absolutely! We all get sent on courses or given new toys to play with but how often do get to use the technology? I personally find it very hard to simply learn something for the sake of it, in one ear and our the other if I'm honest. However, if you give me a project involving some particular set of technologies then I find the experience of getting "down and dirty" with it helps cement that knowledge in the old noggin for far longer and I tend find a lot more uses the same tech can be put to going forward.

Re: The best way to acquire a programming skill

Our PHBs used to decide something was a new trend and they needed to train the staff. People would get sent on a course where they went into "fully soaked sponge" mode after the first day. When they came back they resumed their normal work. Whatever they had learned wasn't needed for at least several months - at which point they realised they hadn't really understood, or had forgotten, the course material.

We pointed out that the ideal way was for people firstly to play with a new trend - using it for nothing important. They might produce some working toys but with various dead-ends and obvious problems.

Then they get sent on the course where they quickly grasp where they had had misconceptions. They would also still be awake when the lecturer reached the really interesting bits. Depending on the lecturer's skill these students' questions were either a pain in the proverbial - or a rewarding interaction.

Finally on arriving back from the course the new knowledge was immediately put into use. It would still take a while to get really competent - but it was a more a advantageous starting point.

Re: The best way to acquire a programming skill

I mean that works if you have lucid API documentation. If it doesn't, you're basically spending weeks spelunking the source code and/or throwing calls against the way to see what works. And hopefully writing the API docs yourself, since no one else bothered to.

Re: 'Fag up'?

Foyles

I can confirm the Russian payment system still exists in some places. I bought and paid for a small joint of meat and a salami for a meal at my mother in law's house, I think the payment took longer than it did to eat the meat and salami. This was in Djukovsky a few years ago in the local super market, the system means you have to pay before you get anywhere near your purchase.

Re: Foyles

Re: Foyles

I last saw this system at the Stanford University Bookstore on University Avenue (@ High Street), Palo Alto in 1992. I never heard it called "Russian". Strangely, I was purchasing Ed Krol's "The Whole Internet User's Guide & Catalog" for a Polish friend in London[0] ... I warned him that it was a waste of time and money, because the Internet was self-documenting.

[0] Why? Because it took about five working days for me to purchase it & get it to him in London. If he had gone through normal channels, it would have taken 5 weeks or more. This was normal for newly published computer & networking books back in the day ... Most were easily available in Silly Con Valley, but the rest of the world? Not so much.

Great article

Thanks for writing a well-thought out and entertaining article.

About pdfs - unfortunately when you're at the head of the pack in your ${large_company} you spend a lot of time reading things available in horribly-formatted websites, or pdf. The iPad Pro 12.9" comes close to sqrt(8.5^2x11^2), so reading without scrolling is easy.

Re: Great article

I'm still learning Python - Don't think i'll ever be an expert, at most intermediate.. but thats good enough for me. My method was identify something I'd really like to implement (something small), then use the simplest framework for it (Such as Flask)

Pythagoras wept

Re: Great article

The short and long sides of a sheet of paper are in the ratio 1:sqrt(2), which also happens to be equal by definition to sqrt(2):2. (The ratio must be constant for all paper sizes, otherwise, you might have problems reducing or enlarging since things will only ever fit perfectly in.one axis) At this particular ratio, you can make the next sized sheet up by sticking two sheets together, or the next size down by cutting one sheet in half, and there is no wastage.

Re: Great article

...Sadly, that neat rule true only for the DIN A, B and C series of paper sizes. If you have to deal with the American paper sizes, you've just got to memorize the ratios, because they're all effectively random numbers: Letter is 1.29:1; Legal is just as wide, but taller, so 1.65:1. "Tabloid" is actually just 2 x Letter side by side, but because Letter was a non power-of-two ratio, the ratio of a double-sheet of it is a not-very-obvious 1.54:1... (American business resists metrification because it would cause "confusion"...)

The other neat A-series trick is how easy it is to calculate document weights: A0 has a surface area of exactly one square metre, so sixteen sheets of A4 paper (2^-4, or 1/16th of the area) has a weight that's exactly the gsm thickness of the paper stock. (80g for standard 80gsm copier paper) Try working the equivalent out starting from "pounds per uncut ream"...

Regarding screens, Microsoft's Surface line has the best screen aspect for reading A-series documents: its 3:2 display ratio (i.e., 1.5:1), is as near as dagnabbit the A-series 1.414 : 1 plus a tiny bit for a menu bar.

Hopefully, other manufacturers will follow suit: 16:9 is only good for movies.

Re: Great article

"Regarding screens, Microsoft's Surface line has the best screen aspect for reading A-series documents: its 3:2 display ratio (i.e., 1.5:1), is as near as dagnabbit the A-series 1.414 : 1 plus a tiny bit for a menu bar.

Hopefully, other manufacturers will follow suit: 16:9 is only good for movies."

That's the trouble with toys where it's assumed you'll only have one thing displayed, it will be A-seriesish in proportion & it will be at full screen. Have you considered that other people have use cases involving multiple documents open at once, perhaps a reference document and a text editor? Or involving images which are much wider than the sort of text you use? In those situations 16:9 is minimal.

Re: Great article

16:9 panels were chosen for laptops because they were cheaper: the same 13" part could be used in a portable TV.

There's no evidence that they're better for reading text, whether side-by-side or one-up. The problem is that they lack height, and text is invariably written as tall pages of narrow columns. Look at how many websites (Reg included) pad out their layout left and right with the content in a narrow vertical column. There is a scientifically proven reason for this: it's to reduce the amount of horizontal tracking your eye needs to do between one line of text and another (similarly to how newspapers lay out text in narrow columns rather than long lines), so that you can read faster.

Wide displays don't offer any benefit for reading - even if you have two documents side-by-side, you will get to see more of them on a 3:2 or (better) a 4:3 display than you do with any of the widescreen displays. And that's before we look at how every GUI design peels precious vertical space away with toolbars/docks/menubars and window headers...

If there were laptops with 4:3 displays, I'd rave about them, but nobody makes them anymore. Surfaces seem to be the only range that has tried to move away from 16:9 and back towards the more work-friendly 4:3 ratio -- if there are others, I'd be delighted to hear about them.

Re: Great article

@ Kristian Walsh - Managed to get a second-hand Lenovo T60 with the 1400x1050 screen for £100. Great for program development and general texty type stuff. Even with a SSD, it's getting a little slow these days.

Re: Lenovo T60 with the 1400x1050

My laptop from Jan 2000 to April 2002 was 1400 x 1050. Not tall enough for a PDF. My next model had 1600 x 1200 @ 15", excellent. Current model since Nov 2016 is a decent laptop, but a less useful 1920 x 1080 at slightly higher DPI. Not as non-glare either, though not shiny.

It seems the widespread use of WS TV has crippled Desktops and Laptops. Yes there are so called "retina screens", but less than 16.5" WS is too small to have the advantage, and more than 18" is far too wide for desktop use at normal reading glasses distance. Are 21" WS monitors / All-in-ones that are only WS HD for people that need reading glasses and won't wear them?

Re: screen size and reading glasses

I find it easiest to be in front of something like a 32" WS monitor with multiple reading windows open and a bit of extra screen space for the odd search, calculation, or notes. One can easily get reading glasses adjusted for the slightly more distant large screen.

Re: 16:9 issue

Any larger than about 17" landscape and the sides of 16:9 landscape are useless for users of reading glasses. The 5:4 (11.25:9), 4:3 (12:9) and DIN format (about 5.66 :4 or 12.7:9) are better. Now there is a trend to 3:1 (27:9), which is only any use for cinema widescreen. The 16:9 (WS) seems to work less well in portrait mode. At least in landscape you can put tool windows or notes to the side.

Re: Great article

Re: Great article

Only for metric sizes. If you use imperial paper measurements (foolscap, quarto, elephant, double elephant (a personal favourite), etc - which, given Foyles reputation for cutting edge technology is rather more likely to be the style of paper in use there) there's no such guarantee.

Paying was only half of it. The other half was the way books were displayed. The common habit of grouping books by subject wasn't for Foyles. They shelved their books by publisher.

If, by chance, all the good books on CodeMangle-- were published by, say Wiley, this was fine. If every publisher had a book out on it you'd wander all over the shop trying to compare them. And if nobody had one out you'd wander all over the shop simply to discover that.

At one time the bus-stop outside bore an advert reading "Foyled again? Try Dillons."

One time in Foyles, I came across a half-height, arched door at the end of a row of shelves, like it was from a monastery for dwarves. I carefully re-traced my steps, and was relieved to find myself in the same universe.

One time in Foyles, I came across a half-height, arched door at the end of a row of shelves, like it was from a monastery for dwarves. I carefully re-traced my steps, and was relieved to find myself in the same universe.

@Alister - Well, it was pre-Colour of Magic publication, so I think I've got an excuse for not thinking of that. On my way out, I did notice a man in a black fedora receiving a package from a short figure with red hair in a long coat.

Ms. Stob, you've been lucky you had not to cope with translated books...

... when the translator had (and still have sometimes, I guess), very little knowledge of the technical matter he or she's translating, or, sometimes, the translator was a techie not exactly perfectly versed in the proper use of his own language, they could deliver "spectacular" translations, which let you scratch your head desperately trying to understand what they were really trying to say (and there was no Internet to check).

When I started to learn Turbo Pascal (coming from Commodore and GW BASIC), for some time I didn't use pointers because the book I had translated their explanation in a so convoluted and erroneous way I couldn't understand them. The translation of the Intel 80286 manual was another source of gems, sometimes harder to understand than the assembly examples.

Anyway, time to sell my Thorpe and Konopka books, it looks.... before BorInCodeEmbIdera finishes to kill off Delphi - their new Linux compiler didn't set the development world aflame, it looks..., and older versions no longer run on newer OS.