User avatar
Douglas6
Posts: 4853
Joined: Sat Mar 16, 2013 5:34 am
Location: Chicago, IL

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:25 pm

I didn't see a smiley on that last post, but I hope it wasn't meant to belittle the wealth of knowledge available through Google and Stackoverflow. Even competent programmers can't know everything, and economics insist a good programmer make use of all available resources. Good raspberrypi.org posters, too.

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:28 pm

mathboy4life wrote:
benjimaestro wrote:You need to be very good at using Google and StackOverflow ;)
Why shouldn't questions be ask here? Isn't this a forum?
This is maybe and example of dry humor (look at the emoticon)... we sometimes hear around here what we call left-pondia right-pondia; or as some have said, we are two peoples [or more] seperated by a common language ! 8-)

But, we need each other (always have). Long live the Queen!

On the serious side; we used to joke in our lab at IBM that there was only one program written by Mike Cowlishaw; which everyone just copy & pasted from there... there is a good amount of truth to that. If you hunt around on the net long enough (especially in this day where source is open, for the most part) you will have the opportunity to learn as much by studying other people's code as you do sitting in a lecture at Stanford or Cambridge--- seriously!

Long live Google ! (as long as they don't become the evil empire)

:mrgreen:
marcus
:ugeek:

stderr
Posts: 2178
Joined: Sat Dec 01, 2012 11:29 pm

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:41 pm

mathboy4life wrote:
benjimaestro wrote:You need to be very good at using Google and StackOverflow ;)
Why shouldn't questions be ask here? Isn't this a forum?
Actually, the "competent programmer" is going to utilise online resources (and other resources) that don't require asking a question first, to avoid unnecessary provocations, and because it would take forever to program something if he had to wait for replies for every possible little thing. Of course as the competent programmer becomes more competent, learns more, he'll need to look less up. But if he's at the point where he never needs to look anything up, is he really challenging himself in whatever he's programming? How much fun is it to write a program that you completely know how to write before you started? Maybe not that much even if it is software that that the competent programmer or someone else actually needs.

User avatar
PeterO
Posts: 5820
Joined: Sun Jul 22, 2012 4:14 pm

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:49 pm

Actually some of the best programmers I know are the ones with the best set of browser bookmarks that take them straight to the sites that they know have the detailed information on the languages and libraries that they use.
No point in remembering stuff that can be quickly accessed as and when it is needed.
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
PeterO
Posts: 5820
Joined: Sun Jul 22, 2012 4:14 pm

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:51 pm

mathboy4life wrote:
benjimaestro wrote:You need to be very good at using Google and StackOverflow ;)
Why shouldn't questions be ask here? Isn't this a forum?
Seems this is the right time to invoke ESR :-)
http://www.catb.org/esr/faqs/smart-questions.html
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
B.Goode
Posts: 10091
Joined: Mon Sep 01, 2014 4:03 pm
Location: UK

Re: How does some one become a competent programmer?

Sat Apr 16, 2016 5:54 pm

Douglas6 wrote:I didn't see a smiley on that last post, but I hope it wasn't meant to belittle the wealth of knowledge available through Google and Stackoverflow. Even competent programmers can't know everything, and economics insist a good programmer make use of all available resources. Good raspberrypi.org posters, too.
Maybe I should have left it to @benjimaestro to explain his own contribution: my interpretation is not necessarily the only one, and may not be correct.

I don't make much use of 'smilies' - in my experience they are either overlooked or misinterpreted.

I did buy a copy of the Raspberry Pi User Guide by Upton and Halfacree, but it quickly became outdated and misleading. Other than that, everything I know about the Raspberry Pi has been learnt from internet resources such as these forums, SO, and other sites traced via Google searches, building on my prior knowledge and experience. I see nothing to suggest that I "meant to belittle the wealth of knowledge available through Google and Stackoverflow."

I agree absolutely about "not re-inventing the wheel". I give practical effect to that every time I boot up linux, or import a python module.

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: How does some one become a competent programmer?

Sun Apr 17, 2016 2:06 am

jahboater wrote:Most unix/linux systems now are 64-bit and the expectation is that by 2038 they all will be, so not a problem.
Those are almost the same words being said in 1985...

... most of us are using four digit date codes now, and by the time 2000 gets here everybody will be, so no problem. hahahahahahahahaha :lol:

See, the problem was that EVERYBODY thought that SOMEBODY would do it and NOBODY did ! ... until the last minute.

The same thing is happening now... even with the PI... I have several pieces of equipment in my home that are capable of running 64 bit code... but for one reason or another they are ALL still running 32 bit codes... so, how many millions of computers world-wide are in this same state... including I am loath to say, the Raspberry PI 3B.

See, what has to happen is that EVERYBODY needs to take responsibility for this problem and make sure that NOBODY is left out in the rain with a 32 bit system (hopefully prior to 2038); should I live so long, I'm not planning to be sitting around waiting for stuff to crash this time; nope.

:?
marcus
:ugeek:

timrowledge
Posts: 1344
Joined: Mon Oct 29, 2012 8:12 pm
Location: Vancouver Island
Contact: Website

Re: How does some one become a competent programmer?

Sun Apr 17, 2016 3:20 am

MarkHaysHarris777 wrote: On the serious side; we used to joke in our lab at IBM that there was only one program written by Mike Cowlishaw; which everyone just copy & pasted from there... there is a good amount of truth to that.
:mrgreen:
well I used to have the office next to Mike at UKSC and I'd certainly accept he was a very fine programmer. At least, until the day he explained to me that he was behind the utter insanity of IBM adopting java (good grief -actual Java!) instead of Smalltalk. That really left me shaking my head.
Making Smalltalk on ARM since 1986; making your Scratch better since 2012

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: How does some one become a competent programmer?

Sun Apr 17, 2016 3:28 am

timrowledge wrote:
MarkHaysHarris777 wrote: On the serious side; we used to joke in our lab at IBM that there was only one program written by Mike Cowlishaw; which everyone just copy & pasted from there... there is a good amount of truth to that.
:mrgreen:
well I used to have the office next to Mike at UKSC and I'd certainly accept he was a very fine programmer. At least, until the day he explained to me that he was behind the utter insanity of IBM adopting java (good grief -actual Java!) instead of Smalltalk. That really left me shaking my head.
Ok, so nobody is perfect... ;)

I must admit that Java sucks (C++ without pointers, a crappy syntax, a convoluted library, and of course "compile once debug everywhere" ).

I am sorry to have to admit to you that about the only language that I never even tried was Smalltalk; and the reason is that my C++ instructor at Winona State University (adjunct to IBM back in the day) hated small talk and told us not to waste our time... he insisted that garbage collection of Smalltalk sucked, and that from a performance standpoint is was behind the eight-ball (as it were) compared to C++ (of course he was biased!)

Some of our guys played with it, but most moved to either Java or C++ depending on whether they felt like they needed to control memory and pointer manipulation... I became a C | C++ programmer (still am).

<sorry>
marcus
:ugeek:

W. H. Heydt
Posts: 12323
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: How does some one become a competent programmer?

Sun Apr 17, 2016 3:46 am

MarkHaysHarris777 wrote:
jahboater wrote:Most unix/linux systems now are 64-bit and the expectation is that by 2038 they all will be, so not a problem.
Those are almost the same words being said in 1985...

... most of us are using four digit date codes now, and by the time 2000 gets here everybody will be, so no problem. hahahahahahahahaha :lol:

See, the problem was that EVERYBODY thought that SOMEBODY would do it and NOBODY did ! ... until the last minute.

The same thing is happening now... even with the PI... I have several pieces of equipment in my home that are capable of running 64 bit code... but for one reason or another they are ALL still running 32 bit codes... so, how many millions of computers world-wide are in this same state... including I am loath to say, the Raspberry PI 3B.

See, what has to happen is that EVERYBODY needs to take responsibility for this problem and make sure that NOBODY is left out in the rain with a 32 bit system (hopefully prior to 2038); should I live so long, I'm not planning to be sitting around waiting for stuff to crash this time; nope.

:?
My experience was a trifle different. The programmers all knew why the problem existed and that it was going to have to be fixed...in the 1970s. At that time, the expectation of *how* it would fixed revolved around the then-common pattern that systems tended to get ripped out and re-written about every 7 years and that the re-writes in the 80s and 90s would take care of it.

Then companies quite re-writing applications systems and just kept maintaining them and doing business need upgrades.

The result of that was programmers pointing that there was problem coming and it had better be fixed because doing it sooner was cheaper than doing it later. No resources were approved until it became a crisis...and it cost a lot more in time money and worry than it would have earlier, just as predicted.

User avatar
DougieLawson
Posts: 38774
Joined: Sun Jun 16, 2013 11:19 pm
Location: A small cave in deepest darkest Basingstoke, UK
Contact: Website Twitter

Re: How does some one become a competent programmer?

Sun Apr 17, 2016 12:02 pm

Y2K was brilliant, easy money for doing the square root of naff all.

The more interesting problem is leap years, they keep rearing their ugly head with interestingly stupid bugs where the programmer didn't bother testing their code and could have done it right first time after a short session with my educational Louisville Slugger.

Image
Note: Any requirement to use a crystal ball or mind reading will result in me ignoring your question.

Criticising any questions is banned on this forum.

Any DMs sent on Twitter will be answered next month.
All non-medical doctors are on my foes list.

timrowledge
Posts: 1344
Joined: Mon Oct 29, 2012 8:12 pm
Location: Vancouver Island
Contact: Website

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 3:01 am

MarkHaysHarris777 wrote:I am sorry to have to admit to you that about the only language that I never even tried was Smalltalk; and the reason is that my C++ instructor at Winona State University (adjunct to IBM back in the day) hated small talk and told us not to waste our time... he insisted that garbage collection of Smalltalk sucked, and that from a performance standpoint is was behind the eight-ball (as it were) compared to C++ (of course he was biased!)
Well there is still time for you to redeem yourself; all you need to do is go to squeak.org/downloads grab the Squeak 5.0 All-in-One.zip and then unzip it (duh). You'll find a shell script; unsurprisingly if you run it, it will fire up Smalltalk.

As for garbage collection, well C++ can't actually make any interesting claims there. Smalltalk gc is really pretty clever, as is the dynamic code generation. You might be surprised by how fast it is on a Pi :-)
Making Smalltalk on ARM since 1986; making your Scratch better since 2012

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26379
Joined: Sat Jul 30, 2011 7:41 pm

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 2:57 pm

DougieLawson wrote:Y2K was brilliant, easy money for doing the square root of naff all.

The more interesting problem is leap years, they keep rearing their ugly head with interestingly stupid bugs where the programmer didn't bother testing their code and could have done it right first time after a short session with my educational Louisville Slugger.

Image
I have a Louisville Slugger (all black though). Sits by the front door to deal with recalcitrant double glazing salesmen.

On topic, in my CS university course, some years ago, we were told "Learn a computer language, then forget it". Bascically because, on the whole, they all use the same constructs, so it's just a quick refresher course to change between languages.

I've never really had to do it though, since I've been C and C++ throughout my 30 year career so far.

I think the real issue when moving between languages is the different libraries. They are much more different and difficult between languages.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

W. H. Heydt
Posts: 12323
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 4:01 pm

DougieLawson wrote:Y2K was brilliant, easy money for doing the square root of naff all.

The more interesting problem is leap years, they keep rearing their ugly head with interestingly stupid bugs where the programmer didn't bother testing their code and could have done it right first time after a short session with my educational Louisville Slugger.
I once went around about three times with someone who was writing the "shop standard" date routines because, while he got the basic leap year calculation correct, when I pointed out the second order adjustment (I was dealing with data that include birth dates and some of them were in the 19th century for then living people) he got it wrong and I had to explain it *again* and he still got it wrong. The third time he got it right, but sheesh...

On the other hand my favorite calendar trick question is "If someone claims to have been born on Feb. 29, 1900, can they be telling the truth?" I should probably modify the query to be refer to a no longer living person.

W. H. Heydt
Posts: 12323
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 4:05 pm

jamesh wrote: On topic, in my CS university course, some years ago, we were told "Learn a computer language, then forget it". Bascically because, on the whole, they all use the same constructs, so it's just a quick refresher course to change between languages.

I've never really had to do it though, since I've been C and C++ throughout my 30 year career so far.
When I was in college, C didn't exist, let alone C++. Engineering 1 was FORTAN and ALGOL...in 9 weeks. The College of Letters and Science CS majors avoided the Engineering equivalent courses like the plague. The L&S course was just one language (ALGOL, IIRC).

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 26379
Joined: Sat Jul 30, 2011 7:41 pm

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 4:20 pm

W. H. Heydt wrote:
jamesh wrote: On topic, in my CS university course, some years ago, we were told "Learn a computer language, then forget it". Bascically because, on the whole, they all use the same constructs, so it's just a quick refresher course to change between languages.

I've never really had to do it though, since I've been C and C++ throughout my 30 year career so far.
When I was in college, C didn't exist, let alone C++. Engineering 1 was FORTAN and ALGOL...in 9 weeks. The College of Letters and Science CS majors avoided the Engineering equivalent courses like the plague. The L&S course was just one language (ALGOL, IIRC).
I think my A level CS was taught Fortran ('84?). First university year was Pascal. Then C.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed.
I've been saying "Mucho" to my Spanish friend a lot more lately. It means a lot to him.

jahboater
Posts: 5630
Joined: Wed Feb 04, 2015 6:38 pm
Location: West Dorset

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 4:43 pm

W. H. Heydt wrote: When I was in college, C didn't exist, let alone C++.
Ditto, but we did have its predecessor B and used it to get things done.
Otherwise it was Fortran IV, Pascal, COBOL, Lisp, the Algols etc.
It was a long time before I got to use C.
Pi4 8GB running PIOS64

drgeoff
Posts: 10620
Joined: Wed Jan 25, 2012 6:39 pm

Re: How does some one become a competent programmer?

Tue Apr 19, 2016 5:35 pm

IIRC my first encounter with programming was Elliot 803 Autocode around 1965.

W. H. Heydt
Posts: 12323
Joined: Fri Mar 09, 2012 7:36 pm
Location: Vallejo, CA (US)

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 4:28 am

drgeoff wrote:IIRC my first encounter with programming was Elliot 803 Autocode around 1965.
First programming was FORTRAN II and SPS II on an IBM 1620 Mod. I in 1964. (20 microsec cycle time, shortest instruction--NOP--took 4 cycles, so you could do nothing at all in 80 microsec.)

User avatar
MarkHaysHarris777
Posts: 1820
Joined: Mon Mar 23, 2015 7:39 am
Location: Rochester, MN
Contact: Website

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 4:35 am

... my first was machine language on the Wang 700c (essentially the same technology that was used in the Apollo Command Module) ... then the IBM 360 model 44 (Fortran II)
marcus
:ugeek:

User avatar
PeterO
Posts: 5820
Joined: Sun Jul 22, 2012 4:14 pm

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 7:07 am

jamesh wrote: I think the real issue when moving between languages is the different libraries. They are much more different and difficult between languages.
This is a really important point. I would bet that the majority of the "programming questions" asked here are actually to do with libraries and their APIs rather than with languages themselves.

Another point to consider is the difference between competent and confident. When I used to teach people skills such as riding motorcycles or scuba diving (both activities that can kill you if you get it wrong!) ,
I learnt that you can only train people up to the point that they are competent (i.e. that they are not going to kill themselves or anyone else.) Moving from competent to confident takes time, practice and experience of different roads and vehicles or sea states and boats.

With these skill types someone with confidence but without competence is a dangerous and best avoided !

In programming, competence can be learnt from a book or on-line training course, but confidence still requires time, practice and experience.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
croston
Posts: 706
Joined: Sat Nov 26, 2011 12:33 pm
Location: Blackpool
Contact: Website

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 7:36 am

I often think that being able to RTFM effectively is an invaluable skill to be learnt. Languages and frameworks change so fast and so often in computing that the fastest and best way of learning 'the latest thing' is to read up and teach yourself. In order to do this, you have to know where to look for suitable material. This is not always immediately obvious or straightforward - how often does Google give you the best answer first? After all, searching the web effectively is a valuable skillset on it's own. You have to be able to spot and ignore all the 'wrong' results.

This comes with experience and practice. In other words, learn plenty of languages/frameworks and apply the right one in the right place. For example, the C language is not best suited for web scripting. The PHP language is not much use for talking closely to hardware. Use the correct tools for the job.

User avatar
Cancelor
Posts: 775
Joined: Wed Aug 28, 2013 4:09 pm
Location: UK

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 3:15 pm

croston wrote:I often think that being able to RTFM effectively is an invaluable skill to be learnt. Languages and frameworks change so fast and so often in computing that the fastest and best way of learning 'the latest thing' is to read up and teach yourself. In order to do this, you have to know where to look for suitable material. This is not always immediately obvious or straightforward - how often does Google give you the best answer first? After all, searching the web effectively is a valuable skillset on it's own. You have to be able to spot and ignore all the 'wrong' results.

This comes with experience and practice. In other words, learn plenty of languages/frameworks and apply the right one in the right place. For example, the C language is not best suited for web scripting. The PHP language is not much use for talking closely to hardware. Use the correct tools for the job.
Good point, the best language to learn is the language of manuals!
Can't find the thread you want? Try googling : YourSearchHere site:raspberrypi.org

boyoh
Posts: 1463
Joined: Fri Nov 23, 2012 3:30 pm
Location: Selby. North Yorkshire .UK

Re: How does some one become a competent programmer?

Wed Apr 20, 2016 8:40 pm

This thread is like the CERN EXPERIMENT In conclusive To many " IFF's or BUTTS "
BoyOh ( Selby, North Yorkshire.UK)
Some Times Right Some Times Wrong

Return to “Beginners”