|
Donathan.Hutchings wrote: Are you self taught or do you have a CS degree in programming? I've never actually heard of a "CS degree in programming." I have multiple CS degrees, but I only had one "programming" class, and it was a segue into a compiler-creation class. Programming is merely a tool you can use to finish solving a problem. The theory and math are all done outside of the keyboard and compiler constraints. In graduate school, we used the computer mostly for creating charts, diagrams, and thesis papers.
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"You can easily judge the character of a man by how he treats those who can do nothing for him." - James D. Miles
|
|
|
|
|
Self taught 50 years ago: LEO III[^] assembler and intercode, followed by various other languages, many of which I have forgotten (COBOL, Fortran, Pascal, RPG, Sparc assembler, etc.), and some which I can remember bits of (C, C++, C#, Java, Python etc.). I did once attend an in-house COBOL course.
|
|
|
|
|
Donathan.Hutchings wrote: Are you self taught or do you have a CS degree in programming?
Both. The CS degree exposed me to a lot of data structures and programming concepts. It also tried to expose me to some languages, but their choices were mostly useless (who needs to know CDC-6500 assembly). I taught myself basic, Z80 assembly, C, C++, OO programming & OO design, C# and pretty much everything else that I've ever used in a business environment. To this day, I still rely heavily on stuff I learned from both avenues.
As for what hardware, let's just say I've written code to run on systems with actual ferrite core memory and leave it at that
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
patbob wrote: As for what hardware, let's just say I've written code to run on systems with actual ferrite core memory and leave it at that
CDC-6500 and ferrite cores - another Michigan State University grad???
|
|
|
|
|
Nope, points further south -- Purdue. Serial numbers 2 & 3 as I heard. Still in service until sometime in the 1990s (and now trying to get a second life in the Living Computer Museum[^] according to what I heard). Must be some kind of record for the longest in-production use of a computer or something. And they probably made us learn assembly for it because, well, they had it
We can program with only 1's, but if all you've got are zeros, you've got nothing.
|
|
|
|
|
I started out as self-taught then went to university for CS degree. Dabbled with BASIC as a child. Taught myself C++ in my late 20's. Learned how to "code" with VBA. Took years of CS classes at a local university where I learned all about the fundamentals such as architecture, algorithms, and data structures (mostly in Java). Got a job. Got my feet wet in .Net with VB. Now I do most of my work in C# and SQL with a little bit of JavaScript mixed in to spice up some internal web sites.
I can tell you that I learned a lot more outside the classroom than in it but the classroom teaches you why things are they way they are so that you don't waste your time fighting up-hill battles or attempting to re-invent the wheel (re-engineering the wheel is fine, though).
if (Object.DividedByZero == true) { Universe.Implode(); }
Meus ratio ex fortis machina. Simplicitatis de formae ac munus. -Foothill, 2016
|
|
|
|
|
"Self taught" and "class taught" are not mutually exclusive.
Even when taking classes, one must go beyond what's being presented by an "expert", whether that expert is teaching in a classroom, online, or in a book.
|
|
|
|
|
Self taught but I started with Excel macros - Excel 1 converting 100s of lotus 123 macros.
This leaves me without the technical grounding that a formal CS education would have imparted. I find this shortcoming quite frustrating as there are whole areas of c# that I don't use because of a lack of that grounding.
I do do excellent commercial work with the tools I do understand and enjoy exploring the boundaries of my knowledge so it is reasonably wide ranging these days.
Never underestimate the power of human stupidity
RAH
|
|
|
|
|
Always went to school after-the-fact, just for documentation.
A little BASIC with the TI-99/4A
A little more BASIC with some sort of monster IBM at the community college (my girlfriend was going, and I had to drive her...figured I might as well take the class, too. Oddly enough, that's exactly how I joined the Army, too.)
Then Propero Pascal on the 520ST, some GEM, then nothing for a few years.
Then Turbo Pascal, Delphi, and finally C# in 2007.
Oh. And about 45 minutes of C somewhere in there.
|
|
|
|
|
I have CS (sort of), but I had already 10 years of learning when I started it... However some of the formal explanations I had helped me to see things orderly, but there is nothing - beyond that - in a degree prepare you to the real thing...
If one things that pushing thru the 2 (3? 4?) years of CS will let you live-out the rest of the 50, 60 - one just dreaming...
Skipper: We'll fix it.
Alex: Fix it? How you gonna fix this?
Skipper: Grit, spit and a whole lotta duct tape.
|
|
|
|
|
Self taught, although no gaps.
I did go through some courses at the Open University for a while, but nothing is more demoralizing and demotivating than school so I stopped doing that before it meant the end of my programming career.
Before going to school I was always working on some project or article here on CP.
During school I did almost nothing except not like programming anymore.
After school I started picking up the pace again and I'm now writing books and last year I wrote my own JavaScript LINQ library.
All better ways to learn than going to school
|
|
|
|
|
Self-taught but took an OU CS degree a few years ago just for fun. It wasn't fun - never doing that again.
|
|
|
|
|
Self taught.
There were only three courses where I have learned something new:
- Assembler for the 6502 8-bit processor during apprenticeship (while knowing 8080 and Z80 assembler already)
- 8087 floating point instructions at university (while knowing 8086 assembler already)
- Fortran at university (while knowing Basic, C, and Pascal already)
|
|
|
|
|
Total self-taught. Built my first desktop computer in 1978 and started by writing 8080 hex code. Progressed through to assembler, BBC Basic, Pascal to VB.Net. I could never get my head around all the C variants! Still keeping the Alzheimer's at bay at 66 by writing programs for myself and family.
|
|
|
|
|
I too am fundamentally self taught . I started on simple Basic on a ZX81, quickly moved to assembler and games programming on the 6809 (which was a great processor). About 5 years later, at age 30 I went to college to get some sort of formal qualification. In the programming subjects I knew way more than the lecturer but learning some discipline was invaluable.
|
|
|
|
|
Mostly self-taught - I don't think an A-level in computing counts.
Started at home on a ZX-Spectrum.
School had several BBC Micros[^] and a couple of primitive DOS-based PCs for GW-BASIC / QBasic.
College had slightly more advanced Windows 3.11 PCs, with Pascal and a version of MS Office with the predecessors to VBA.
University also covered the basics of Pascal.
I got free copies of Delphi and an early version of Visual C++ from magazine cover discs, and tinkered with those for a bit.
Then I got a proper job, which started with VB5, Office 97, and FrontPage.
"These people looked deep within my soul and assigned me a number based on the order in which I joined."
- Homer
|
|
|
|
|
Self taught - have Chemistry and Math degrees, but learned PDP-11 assembler to write elemental analysis routines for and Inductively Coupled Argon Plasma Spectraphotometer in the lab where I worked. Then went on to x86 assembly, Delphi, C, C++, VB 6.0, Powerbuilder, MUMPS, Forth and C#. I got no stinkin' CS degree on my wall!
Anyone who cannot cope with mathematics is not fully human. At best he is a tolerable subhuman who has learned to wear shoes, bathe, and not make messes in the house. - Lazarus Long
|
|
|
|
|
Seeing everyone's history reminded me of these stories.
I used to give week long, crash courses for computer languages to corporate programmers that needed to learn a new language.
Some highlights and lowlights:
- Highlight: Introducing C++ to a bunch of C programmers with an average of 10 years of C!
Unfortunately, the training company had selected some course from MS for transitioning COBOL programmers to C++. We covered that whole week of material in a few hours then made up our own class. They brought some samples of their nastiest (most efficient) C code that did things that C++ does not allow due to scope violations. I learned a thing or two. They had keggers every Friday, but I had to pass on the beer since I had a 3 hour drive home. - Lowlight: Not realizing until Thursday that a bunch of IBM mainframe assembly programmers that were learning C did NOT understand how the stack works! I was flabbergasted; they were really confused about the concept of local variables. I came to understand that their programs all worked on global variables. They would: load up a bunch of registers and then call a library, unload a register or two, load up some more registers and then call a library, etc.
- Lowlight: Realizing that one of my students had no concept of breaking units of work down into functions/subroutines. Their background was in an environment that I knew. I knew it supported functions (VBScript/VBA type language). Their programs only had a single main() function!
|
|
|
|
|
Very similar story. I had one formal course in Fortran some 50+ years ago. Then did some Basic programing throughout my career. Upon retiring I started with VB6 and then, about 5 years ago C#. I'm trained as a scientist, not engineer: we experiment and our not very good designers. Makes for being bad programmers I really do feel the gaps I have in knowledge and have found OOP particularly difficult to comprehend. A whole new way of thinking for an old guy
|
|
|
|
|
I am self taught in Basic as a kid on a Commodore 64 and later a Trash 80. After high school I went and got a BS in Electrical Engineering and that came with some actual classroom training in Basic, Fortran, and assembly language but the focus was not computer science. Around that time I built an Apple II clone and Pascal was the hot ticket so I took a night course in that as well as COBOL (who knows why?). I was also employed working on diagnostic software for high volume printers in Forth and C. I decided I wanted an MSCS degree so I went at night. Learning the theory was worth it for me. Thirty years later I'm still working on embedded software but these days it's mostly C++, assembly and Python. I fool around at home with some robotics and when I retire next year I plan to do even more with that.
|
|
|
|
|
I can definitely relate to that...
I bought a Commodore Vic20 when I was 12,and the cost at that time was $300 USD. Got me the VIC modem and was online at 300 baud.
When I went to a Catholic high school, they had a few Apple II computers; and going into my sophomore year someone had donated about 30 of the new Commodore 64s. I got to take a course in BASIC. Mid way through the year, we received a grant from IBM, 60 PCs and a few XTs. WooHoo! I was now in the "Special Projects in Computer Programming" elite course.
After HS, I was in the Marine Corps, Information Systems Development; working with DB2. I left after 6 years including Desert Shield/Storm.
Got me a "fast food" diploma in Applied Science from DeVry in the mid 90s, where I first learned OOP with Turbo Pascal.
Late 90's I got an MCSE+i and a CNA, we touched on VBScript and Classic ASP.
Built a website for the volunteer fire department using Classic ASP and FrontPage in 2002.
Got a job as a programmer for a local web developer where my Classic ASP was fine tuned. Boss wasn't hip on .Net Framework until 2010. Had a so-called developer build a new Content Management System in C# following MVC. That programmer was scared of SQL Server, and wrote everything using LinqToSql; as he was learning from some "learn C# in 30 days" type of book. This was a code-first architecture, and the resulting Sql architecture was very ugly. It also was generating about 50x the queries when compared to the well written Classic ASP it was replacing.
I wasn't to keen on all of these methods of building new projects, seemed to be too much drag-n-drop programming for people who couldn't program or work with SQL.
After this is when I got to learn C#, by fixing what was broke. Took about 3 years to get rid of all the errors and to get it to be somewhat efficient; as the boss was more interested in moving ahead and not fixing the busted foundation. Those 3 years saw this CMS replicated about 500 times.
I was tasked with building a new CMS in 2014, and had full engineering control. At this time I actually started doing the research needed on the best ways of implementing what needed to be done; and the new platform was created. In 2016 I left the company as they were no longer invested into the programming aspect, just having a template and seeking alternative revenue streams based on the marketing of the clients.
So for the last 6 months, I have really gotten into learning the actual foundation of C#; when to use structure vs class, immutability, etc. The "Compact" management system I have built is about 10X more efficient than the one I finished a year ago. And I will be the first to say that I still have a lot to learn
|
|
|
|
|
My introduction to programming was a year of FORTRAN in high school, 1973-1974. Taught at the local community collage, but for high school students. Coding forms and punch cards. Got to see the computer once, on the first day of class.
Liked it, but didn't do it again until Fall 1978. One semester of FORTRAN was required in the undergrad program in the College of Architecture and Urban Planning. Teletype terminals connected over 300-baud serial lines to the mainframe computer in the Computing Center. Relearned what I'd learned in two semesters of high school, and more. For the final project, I wrote my first computer graphic program: drawing shear, bending moment, and deflection diagrams for a simply-supported beam with a uniform load and up to 10 point loads. Output to a pen plotter in the Computing Center. There was a well-worn trail in the snow between the Art & Architecture Building and the Computing Center.
Followed that in Winter 1980 with an elective course in computer graphics, in the Master of Architecture program, still in FORTRAN. Working on Tektronix storage-tube graphics terminals. Couldn't erase a line without erasing the whole screen and redrawing all of the lines except the one to be erased.
Also, for a sesmster project in an advanced lighting design course, I wrote a program to intercept a temporary data file from a FORTRAN batch lighting analysis program (LUMEN II) to draw perspective views of room surfaces with shaded luminance contours. (LUMEN II itself "drew" surface contours with ASCII art on the line printer.) I used a lot of dense cross-hatching on the pen plotter (which invoked the ire of some), and on the storage tube terminals. Then we got a Chromatics color raster terminal. Wow -- 4 bits per pixel: red, green, blue, and blink! So I changed my program to support that.
This continued through two additional semesters as an independent study project. And that's where the REAL learning happens ...
In the spring of 1980, with one year of architecture school remaining, I took a job in the Architecture and Planning Research Laboratory, working on software for a Computer Aided Engineering and Architectural Design System (CAEADS), for a project sponsored by the Corps of Engineers.
In the spring of 1981, I graduated from the professional program in architecture as a professional computer programmer. I've been doing it ever since.
Self-taught in C (and combining C and FORTRAN libraries, with function-calling in both directions), C++, a bit of JavaScript, occasional forays into C#. As a doctoral student in architecture I took a two-semester cognate sequence in artificial intelligence taught in the CS department: a lot of LISP in the first semester, and not a single line of code in the second.
I'm now a "virtual reality visualization specialist" (according to my name card), working almost exclusively in C++. Moved from the shared-time mainframe system, to Apollo Aegis workstations, to various UNIX & X11 Windows environments (Ardent, AIX, XENIX, HP-UX, IRIX), and now working with Microsoft Windows 7, 8.1, and 10.
At home I have a MacbookPro that, as an OpenBSD host with an X11 Window server, still runs 36-year-old FORTRAN code, ported from the mainframe to UNIX systems decades ago.
Most of what I know, I learned by doing -- either on the job or at home.
A hollow voice says "plugh".
|
|
|
|
|
Think about it: if the world was flat, cats would have pushed everything off it by now.
(Thanks Rich!)
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|
And how do you know that the world is not flat and the cat's simply don't like to touch some things?
The language is JavaScript. that of Mordor, which I will not utter here
This is Javascript. If you put big wheels and a racing stripe on a golf cart, it's still a f***ing golf cart.
"I don't know, extraterrestrial?"
"You mean like from space?"
"No, from Canada."
If software development were a circus, we would all be the clowns.
|
|
|
|
|
There speaks a non-cat-owner!
Bad command or file name. Bad, bad command! Sit! Stay! Staaaay...
AntiTwitter: @DalekDave is now a follower!
|
|
|
|
|