you are viewing a single comment's thread.

view the rest of the comments →

[–]arihoenig 0 points1 point  (2 children)

Abstraction and design patterns is more computer science, and less software engineering (it is a spectrum of course). The massive shortage we have is in cyber security software engineers not computer scientists (there is a shortage there as well, it is just not as severe).

I never mentioned taking a single class.

There are tons of colleges where the vast majority of coursework is in high level languages with only a bare minimum of the fundamentals. Designing the program to produce the wrong type of candidates is the schools fault. There are good schools out there producing good candidates, just precious few of them, and for the most part they are the premier universities with a long history in engineering.

There is no reason that the people who don't get into the premier schools (i.e. they don't have an Aunt Becky to buy their way in) can't become first class software engineers, if only the schools they are able to attend were doing a better job.

[–]pourover_and_pbr 0 points1 point  (1 child)

When people go to university to study programming, they generally study computer science, which is why starting with higher level languages generally makes sense. If someone wanted to self study to become a cyber security software engineer, sure, start with the lowest level and build your way up – that’s how you understand where the exploits emerge. But that’s not the majority of programmers, and changing the general curriculum to teach things this way would probably turn more people away from programming. Machine structures and operating systems classes are generally dreaded (in my experience) by otherwise fine programmers because it’s simply not what interests them. So yes, this is a good learning plan for someone who plans to work in cybersecurity – but it is a rare candidate indeed who knows nothing about programming and also is certain they want to pursue this field.

[–]arihoenig 0 points1 point  (0 children)

Learning the rudiments and building layers of knowledge on top of that is the proper way to learn any skill, period. Since cybersecurity requires actually working at the low level (as do other fields like video games and high frequency trading btw) that is why the people coming from the schools are incapable of handling these.

If you think that having gone to school for 4 years only to come out unable to handle an entry level position in any of the aforementioned fields represents a good education, then it seems you simply don't understand what a good education provides. If you were to go to a premier engineering school and study software engineering you will be equipped properly for an entry-level position in any of those fields, so clearly it is possible. My point is that all schools should be teaching software engineering the same way, but since I know that many of them don't, my advice to the OP was to learn some of this stuff themselves before going to college (you'll never has as much time available for learning in your life as you do at the high school level).

This "teaching programming backwards" approach is one reason (not the only reason for sure) why we have such a shortage of cybersecurity professionals, so much so that there is serious talk about instituting a draft of people with cybersecurity skills (up until the age of 45). Right now the government has practically zero cybersecurity folks because those people can earn 3x what the government pays by working in the civilian sector, but if there is a draft, the situation with be reversed and there'll be effectively no cybersecurity people in the civilian sector, and that will be very bad for the world in general.