Programming: Intrinsic or Taught
-
Same here. I went to college and studied Math because I liked it but wasn't good enough to major in Physics - which is what I really thought I wanted to do. I hadn't even seen a computer, let alone use one. I met a guy who was taking BASIC and COBOL classes and it sounded interesting so I took the optional Fortran class. That's when I had that AHA moment and knew that's what I wanted to do for the rest of my life. At that time there weren't really any programming classes that taught how to do it rather than just teaching the language itself. My classes were in Fortran, Algol, data structures using Lisp and assembler. I spent the first 20+ years writing programs in assembler and learning how to do it right by studying how others before were doing it and learning on my own. I think the "still learning" goes without saying - if you aren't still learning programming you're dead or retired (and learning something else).
Earl Truss wrote:
I think the "still learning" goes without saying - if you aren't still learning programming you're dead or retired (and learning something else).
Technology is changing so fast that if you don't continue learning you get left behind. Once I started programming I never looked back or regretted it! Mike
"It doesn't matter how big a ranch ya' own, or how many cows ya' brand, the size of your funeral is still gonna depend on the weather." -Harry Truman.
Semper Fi http://www.hq4thmarinescomm.com[^] My Site
-
Right about the AHA moment. :omg: I had that same thing happen, but not until my sophmore year however. I think to be a good programmer, you have to have the knack for problem solving...and that can't be taught. :-D
Yes, you need to be good at problem solving AND you need to be humble enough to realize that next time around your code would be even better (hardly any code cannot be improved). Humble part helps you to learn from your own code which is probably best thing. Also improvement never stops. The older you get the better you are. … and you are guessing right – I am pretty old and still have fun so hopefully many of you will have it at my age too :)
-
I have the fortune of learning from both, University and Self-taught. However, until I had that AHA moment freshman year I did not really get programming. Sure I could do it and follow the steps but the art evaded me and then it clicked. Anyone can program a computer but you can't teach good programming. Unfortunately, it is a hard thing to evaluate. Programming is a very difficult field to level. To this day I still get into heated debates with supposed Web Architects about why you can't write web based systems that rely on file extensions.
Need custom software developed? I do C# development and consulting all over the United States.
If you don't ask questions the answers won't stand in your way.
Doing a job is like selecting a mule, you can't choose just the front half xor the back half so when you ask me to do a job don't expect me to do it half-assed.Web ArchitectS - does that mean that there are TBL clones out there, or that as an incarnation of Dr DoLittle you can converse with spiders :laugh:
-
I would say great programmers are those that have a "problem solving" skill set from very early on - any formal training (whether from schooling or on-the-job experience) just focuses that skill set ... like swimming - everyone can learn it, but to be really good at it there must be that "something extra" that is built in from the start (Michael Phelps as an example).
Steve _________________ I C(++) therefore I am
Aah, someone else recognises the need for aptitude, IMO the number 1 requirement. Good programmers are born, better than good programmers are trained -- formally, vocationally and experientially. I started by learning on the job, first writing Autocoder on Ferranti boxes, then Algol on Burroughs boxes, most training came from the h/w manufacturers (e.g. I learnt fortran at the CDC Institute). I don't think there were many CompSci degrees or diplomas in the late sixties. In the eighties I thought I'd like to teach, so I did a double masters in CompSci & EEng. Having seen broken souls that litter the academic battlegrounds I soon gave up on the teaching idea, I'd only ever thought of teaching at the tertiary level. I think I learnt more in the sixties & seventies than I did in the eighties. However the degree gave me a much better grounding for what I've had to learn in the nineties and naughties; aside from wpf of course, where I suspect a degree in chaos theory and/or semiotics might be relevant, or perhaps I've just become an old dog. BTW if you want to be a champion swimmer then big feet are a useful asset, most top swimmers have them.
-
Same with most things; you have to love it to do it well. If you don't have the aptitude, you can't learn it. Even if you have the aptitude, you still need to be taught. And taught. And taught some more. The best training comes from working with people who have been doing it for a long time. And you're unlikely to get such a job without a degree. The first programming job I had after I got my BSCS I was on my own to write a complete system (in VAX C). I did it, in the allotted time, it worked (it may still be working, I don't know), and I think it is/was better than what many of my classmates would have produced. But it is by no means of "professional" quality. The next job I had I was on a team, maintaining a large product, and that was a huge step in improving my skills. Programming is a little easier than many disciplines because: you have the compiler to help you, there is undo, you don't (generally) use up physical resources on failed attempts, and you don't need to start all over from the beginning after a failed attempt. Kids these days don't know how good they have it. We didn't have Visual Studio, .net, and the Internet when I was in school.
Kids these days don't know how good they have it ... like you I started programming in 1970 with mainframes and movedo microprocessors when the Intel 8008 was released ... we knew and respected the value of every byte...when Dr Dobbs published the source for Tiny Basic, we really appreciated all of the tricks that were used to maximize memory usage ... how many kids today could create code for a "middle of the road features" interpreter that runs in 4 to 8K of memory???
Steve _________________ I C(++) therefore I am
-
Kids these days don't know how good they have it ... like you I started programming in 1970 with mainframes and movedo microprocessors when the Intel 8008 was released ... we knew and respected the value of every byte...when Dr Dobbs published the source for Tiny Basic, we really appreciated all of the tricks that were used to maximize memory usage ... how many kids today could create code for a "middle of the road features" interpreter that runs in 4 to 8K of memory???
Steve _________________ I C(++) therefore I am
Steve Mayfield wrote:
like you I started programming in 1970
Oh, I don't go that far back; I started in 1983, on a PDP-11. And it was better than the sex I'd had up to that point. But my father was one of those who got to say; "It has 8K of RAM? What are we going to do with all that?"
-
yeah - there are lots of engineering grads in financial development - it seems a particularly good match.
It is also the case that many math, science & eng grads found employment as traders and quantitative analysts in the financial services sector. One memorable instance is Robert C Merton, a graduate in Engineering Mathematics, a Nobel prize winner and a co-founder LTCM. I suggest that the dramatic failure of LTCM in 1998 was the bellwether of the current economic shambles, it certainly triggered my divestment of equities in that sector. In more recent times the quants believed they could turn pigs ears (aka sub prime mortgages) into a silk purses (aka mortgage backed derivatives and default credit swaps), and we know where that's got us. As an employer I've found just as many math & science grads have made lousy programmers as have made good programmers. One of the better programmers I've employed has a PhD in Marine Biology, another has degrees in English Medieval History and Italian Renaissance Literature, the latter was employed as a trainee soon after her graduation. I've employed several graduates in the bio & geo sciences, on average I think they've become better programmers than the math, physics and chemistry graduates and just as good as most engineers, the exception being electrical engineers, who generally do better. With respect to CompSci graduates, I look for graduates who've done a double in CompSci and another discipline such as Law, Arts or Politics, I'm not convinced that CompSci faculties give their students reasoning skills as well as some of the more traditional disciplines. Finally the best programmers do not necessarily make the best employees, even in a programming capacity.
-
Yes, you need to be good at problem solving AND you need to be humble enough to realize that next time around your code would be even better (hardly any code cannot be improved). Humble part helps you to learn from your own code which is probably best thing. Also improvement never stops. The older you get the better you are. … and you are guessing right – I am pretty old and still have fun so hopefully many of you will have it at my age too :)
t. Hrubik wrote:
The older you get the better you are
Except as far as recruiters are concerned...
Kevin
-
When I studied programming in college computers were in there infancy. Basically we were introduced to Data Structures which had been around for a long time and breifly reviewed various languages such as: cobol, fortran, PL/1, Pascal and so on. The professors had there own programming styles and methods for developing using flow charts and top-to-bottom and bottom-to-top methodology. From the statement above I would say that I am self taught and am still learning. Mike
"It doesn't matter how big a ranch ya' own, or how many cows ya' brand, the size of your funeral is still gonna depend on the weather." -Harry Truman.
Semper Fi http://www.hq4thmarinescomm.com[^] My Site
I am an ex-Australian Airforce technician commissioned from the ranks as an Engineering Officer. Was forced into handling large amounts of complex data occasionally needing me to write scripts and routines (funny how the services do that). While teaching myself to program using Visual Basic, I was doing a degree in my own time. Part of my degree included some Software engineering units (NOT BY CHOICE). There was a fair amount of pressure having to turn in one assignment a week (same workload as the full time students). Strangely enough I found I was good at it and actually enjoyed it. This was when universities were teaching PASCAL and C. I found the formal education knocked of the rough edges of what I had taught myself. But you must continue to learn and adapt to knew technology. I would rate it as 75% self taught and 25% educated.
-
I am an ex-Australian Airforce technician commissioned from the ranks as an Engineering Officer. Was forced into handling large amounts of complex data occasionally needing me to write scripts and routines (funny how the services do that). While teaching myself to program using Visual Basic, I was doing a degree in my own time. Part of my degree included some Software engineering units (NOT BY CHOICE). There was a fair amount of pressure having to turn in one assignment a week (same workload as the full time students). Strangely enough I found I was good at it and actually enjoyed it. This was when universities were teaching PASCAL and C. I found the formal education knocked of the rough edges of what I had taught myself. But you must continue to learn and adapt to knew technology. I would rate it as 75% self taught and 25% educated.
Programming is something you either get or you don't. If you have the interest and the motivation you will learn.
muskrat wrote:
I found the formal education knocked of the rough edges of what I had taught myself.
They give you a basic understanding of structures and how to break a problem down into smaller, manageable units but ultimately its up to you.
muskrat wrote:
But you must continue to learn and adapt to knew technology.
That's pretty much the deal in any technology the only difference is ours changes so rapidly! Mike
"It doesn't matter how big a ranch ya' own, or how many cows ya' brand, the size of your funeral is still gonna depend on the weather." -Harry Truman.
Semper Fi http://www.hq4thmarinescomm.com[^] My Site
-
Taught myself while working as an computer technician, so I could exercise the computers to find bugs. Taught myself while getting BS in Math, so I could do analysis and homework. Taught myself while working as a software tester, so I could exercise the programs I was testing. Refined all of that while getting MS in Computer Science. Continued teaching myself while writing software for the last 25 years. Maybe it is intrinsic, or I wouldn't have been able to teach myself as much.
SS => Qualified in Submarines "We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
My sophomore/freshman years consisted of Assembly, Fortran, Cobal, and C (Oops! Just dated myself!) The professor told us, early-on, that all who graduate from these courses will be able to produce code; only 10% of those graduates will produce good code. With that bit of corporate insight, coupled with personal experience, the issue is soundly placed to rest. If one is object-oriented, is proficient in UML, and is of keen analytical mind, he/she should be able to be a winning programmer regardless of the training platform (informal/formal). By the way, Jim, (SS) stands for Submarine Service; a pair of dolphins (fish), silver or gold, represents "Qualified in Submarines". My first boat was SSN-579. What was yours?
-
On my way to work today, I was thinking about my development as a programmer. I do have post-secondary education in the field, but, I think what I was taught there was more of the syntax of a language than how to program itself. With that thought in mind, I would describe myself as self-taught. As an example of being completely taught a skill, my oldest brother is a meat cutter by trade. He was taught his skillset by our father and then refined his skillset by attending college. How would you describe yourself in this regard? Tim
I would describe myself as self-taught indeed. At the age of 6 I've been copying BASIC programs from the language manual which came with my ATARI 400. I learned pascal from Borland's Turbo Pascal integrated help. My very first job as a programmer was in C++, so before going to the interview, I bought a book, and spent a week or so in learning and practicing the language syntax. That was around the age of 17. 15 years passed since then, and I've been working (pretty much constantly) in over 10 different companies including 4 Startups. I finished my BA in economics when I was 20. It was a poor learning experience, but it did open some doors when I applied to jobs which required some higher degree...
-
My sophomore/freshman years consisted of Assembly, Fortran, Cobal, and C (Oops! Just dated myself!) The professor told us, early-on, that all who graduate from these courses will be able to produce code; only 10% of those graduates will produce good code. With that bit of corporate insight, coupled with personal experience, the issue is soundly placed to rest. If one is object-oriented, is proficient in UML, and is of keen analytical mind, he/she should be able to be a winning programmer regardless of the training platform (informal/formal). By the way, Jim, (SS) stands for Submarine Service; a pair of dolphins (fish), silver or gold, represents "Qualified in Submarines". My first boat was SSN-579. What was yours?
SSBN 633 (Blue Crew) USS Casimir Pulaski. The only Polish ship in the American Navy. 7 patrols from '73 to '76. I just assumed it meant that because it was attached to your rating {ETN2(SS)} only if you were had passed your sub quals and could wear the Dolphins.
SS => Qualified in Submarines "We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
-
SSBN 633 (Blue Crew) USS Casimir Pulaski. The only Polish ship in the American Navy. 7 patrols from '73 to '76. I just assumed it meant that because it was attached to your rating {ETN2(SS)} only if you were had passed your sub quals and could wear the Dolphins.
SS => Qualified in Submarines "We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill
SSN-584 (Seadragon) & SSBN-633(Gold), fellow bubbleheads. I learned good things in college about data structures & the way operating systems & compilers/interpreters work. Well worthwhile. Programming, itself, is an art, less learnable and more zen-like IMHO. Many people speak English; few well even after a lifetime of "practice". Same goes for computer languages.
Bill
-
SSN-584 (Seadragon) & SSBN-633(Gold), fellow bubbleheads. I learned good things in college about data structures & the way operating systems & compilers/interpreters work. Well worthwhile. Programming, itself, is an art, less learnable and more zen-like IMHO. Many people speak English; few well even after a lifetime of "practice". Same goes for computer languages.
Bill
That's three bubbleheads. I wonder how many others there are. The environment is good training for programming. Long durations being kept from the rest of society, learning systems in detail, concentrating on details for long periods of time, problems that better get fixed or everyone goes home.
SludgeBug wrote:
Programming, itself, is an art
"Most people want to build beautiful, elegant things. If you rob them of that, you're taking away the passion of the craftsman." Grady Booch
SS => Qualified in Submarines "We sleep soundly in our beds because rough men stand ready in the night to visit violence on those who would do us harm". Winston Churchill