Bang on, @LSLGuy. Boot camps are great for specific products that teach you how they work, they don’t teach you how to think.
As an example, I went on a three week boot camp in 1998 to learn Microstrategy, a business intelligence system. I already had experience with business analysis, SQL, and competitive BI tools like Cognos. The boot camp taught me techniques, methodology, and troubleshooting. If I didn’t know BI going in, I wouldn’t have learned anything over the 3 weeks.
My major pet peeve is when I asked people to explain their role to me in a project they had previously worked on. Often the first words out of their mouths was “We did…”. No, I want to know what part YOU did. Don’t tell me there were python scripts to extract data from a repository, FTP them to Azure, surface the data in a data lake, and then build a dashboard when it turns out their role was to write PowerShell to move a CSV around and that’s it.
Technology has been developing too fast for people to settle into jobs with fixed requirements like that for a long time now. Anybody who isn’t constantly learning the latest capabilities and industry trends will find themselves looking for a new job sooner than they think. Yes, a degree helps finding that new job. But not as much as being ahead of the curve and advancing your own skills while you still have a job. Once past HR a degree doesn’t help a lack of knowledge about new technology. And new technology is not as simple as learning another programming language or operating system anymore,
Businesses in the growth stage, especially if they haven’t gone public, are much more willing to hire people without degrees than well established businesses trying to maximize their value. Those well established business want to maximize their inherent value and a factor in valuating a technology company is the number of employees with degrees, with advanced degrees more heavily weighted.
I taught PDP-11 assembler and data structures in college. If those are what he considers “academic” subject, I don’t think I’m interested in reading his book,
The only think I would add to your excellent list is computer architecture. Only a vanishingly small number of people know what is going on inside, and not that software engineering and computer engineering have split, it is even fewer.
How many people who are computer literate can tell you what happens when you press a key on your keyboard, in depth?
I’ve had the same experience interviewing people. I usually asked them about a bug they created and how they found it. If someone claims they never, ever, wrote buggy code either they are lying or they’ve never done anything interesting.
Interesting. Even when I was in college, long before there were as many languages as today, you learned a bunch of them, and, if you were any good, you could abstract them so that learning another is relatively easy.
Many years ago I read an interview with a CIO who lambasted universities for teaching “academic” stuff which he defined as anything but how to use the software package they were using at the moment. His ideal world would be to hire a bunch of kids from college pre-trained on the package, and when the company switched packages, fire them all and hire a new set.
Small cog in a large global networking tech firm speaking (not a programmer myself). If you’re self taught, try to find a mentor and do some online courses where they teach you programming languages and then you work thru the problems (and answers) online.
Most places now seem to want people who do open source and who are actively participating in those communities. GitHub is one example of an open source platform where anyone can post projects and get contributors. The reason is that programming skills alone aren’t worth much. You have to know how to collaborate and communicate with a team.
There are loners out there, too, I don’t know any, and I myself was unsuccessful in this role. I also lacked the patience to prevail in these programming courses. One little missing bracket and nothing will work. So I’d get 3/4 thru an assignment, run into a snag, couldn’t figure out where my missing semicolon was, and stomp away in a huff.
If you’ve never ever programmed, and never had much interest in it, never was a tinkerer in your spare time, re-consider this career as you may not enjoy it much.
There are many types of programmers. The skills aren’t that transferrable. It’s like are you a kidney specialist or a podiatrist?
I was taught many things back in college (40 years ago) that are still with me today. I learned how to learn, and how to work in groups with differing abilities and skills. I also learned multiple approaches to analyze a problem. Of course, I also learned algorithms, languages, and best practices - these were important early in my career and less important as time goes on. But the first part - those skills I use every day.
There are many ways to accumulate the skills needed to be a good software engineer, one of which is getting a degree. It doesn’t need to be a CS degree, but when I’m interviewing for an entry position that is clearly the first thing I’m looking for. When looking for a senior engineer there are many other factors that come into play, the degree is really not as important as their work history.
Oh he was taught many things in college, including how to write (he has written three books), just not in CS. One of the biggest gaps–one of his main points–was working in groups, which is the constant life of programmers.
I just realized this thread was started 2 years ago. That explains one recent comment. The OP may never be back but here would be my direct response to him:
First, have you tried to learn any programming on your own so far? With or without formal classes every good programmer I’ve ever met was actually self taught. If in a few introductory examples you haven’t started to understand programming then you probably never will.
It’s not that programming in it’s basic form is all that important anyway. It is at some level a requirement for jobs across industries and specialties. You will be much better off developing other skills, and in the modern world school might be the place for that. Your ability to communicate, to organize, to understand how to get people to work together can be more important than your ability to program. Weirdly, it is a common route into management for would be software developers would get promoted up the line based on their lack of value for producing code, while at the same time top producing coders never get the chance to progress in their careers because they aren’t easily replaceable in their position. But far and away the most valuable skill to bring to a programming job is expertise in some other area so you know more than how to code something according to specs of varying quality, you will actual know and understand the objective and can code with the actual need in mind instead.
I agree. At one point, my son was programming interfaces to hardware. He quickly discovered that the specs that came with the hardware (set some code and execute a certain interrupt and the hardware will do this) was never accurate and that the first thing he had to do was to get accurate specs by trying everything and seeing what happened. Once he had accurate specs, the rest was easy.
You’re right. I got thrown off by the note that the OP hadn’t posted in a long time, then confused by the date format that uses the presence or absence of an apostrophe to distinguish between days of the month and years. I’ll just say I wouldn’t have done it that way, but it was still user error.
I’m of that era as well and agree with everything except best practices. The professor teaching COBOL had never worked in industry. He taught us to give the COBOL paragraphs meaningful names such as INITIALIZESTATE, COMPUTERESULTS, CLOSEFILES, etc which is a good practice, but then insisted that the best way to organize the paragraphs was alphabetical order which was overwhelmingly stupid.
Bingo. After 9 years of teaching, I knew I wanted to get out of it and go into the tech end of education. I had a ton of skills that I developed over those 9 years because I supported my own computer lab. Still, I made an effort to get certification so that I would have the paper end of it. Good thing, too, because the proper certification was a mandatory requirement for job consideration at virtually every place I applied.
Yes and no. You can learn to program with a few examples. You probably can’t learn to program well. On the other hand, you will learn one or two languages in school, and you will have to teach yourself all the others you might need. With a good background that is easy.
In grad school we used Pascal for a few classes (a long time ago) and I was in charge of teaching Pascal to the students in two lectures. I got to grade their programs, so my lectures worked. They all had earlier CS classes, which helped. I could do it because I understood the structure of languages, being a compiler writer, and so could structure the class around to do this function here is the language construct, as opposed to listing the statements in the language.
Trust me, before structured programming an awful lot of programs were junk. They are after also, but there is a fighting chance of not seeing spaghetti code.
The only reason I could see before this would be that, in the era before screen editors and easy searching, it would be faster to find a given paragraph in, for example, a deck of punch cards if they were all in alphabetical order.
But with any kind of modern tooling, this would be hopelessly bad.
If we’re going for incredibly stupid, we had a new hire, just out of college, working on some Series/1 code (that dates it). We asked to review his code, and noticed he was using single letters as variable names, like a beginning BASIC programmer might do. We told him to give names to his variables. He came up with “Mary”, “Susan”, etc. Not quite what we had in mind.
Just out of college. Hmm. What sort of college and what sort of degree? I really hope the answer is a trade/tech school for IDK, maybe medical receptionists, and a “certificate” in basket weaving.
If, as I fear, this as a plausible real school with a plausibly relevant degree, our increasingly software-dependent society will collapse in 15-20 years from the sheer weight of incompetent devs in critical spots.
He graduated in 1980 with a BSEE degree (like me), since real Computer Science/Engineering programs were just getting off the ground. We gave him a bit of slack, since he was a recent immigrant from Vietnam (his degree was from an American university).
Ah. I misunderstood that your story was a lot fresher than that. I withdraw my withering contempt for the fellow and his school.
In 1980 I too was earning a living writing business apps in minicomputer Basic with variable names like A, A1, A1$, B, B2, B2$, etc. Which were the only sort the interpreter would accept. While getting one of the early BSCS degrees conferred by my university. I wasn’t in the very first graduating class, but it was close.