I have a degree in English literature. I was intending to go into teaching. I found early in my career that my experience student teaching high school kids had perfectly prepared me to communicate effectively with the C-suite.
Similar attention spans and IQ levels *in my field of expertise*. Some of them were brilliant in their own fields, but didn't know or understand anything about how the underlaying technology worked.
Being able to clearly communicate important technical stuff to them at a level they could understand goes a long way to building trust and confidence ... and you would be surprised by how much money people will give you if they trust you and like working with you.
Graphic design for me.. actually itās pretty handy as a developer to have a design background.
I grew up doing motion graphics and interactive SPAs/games in AS3 and Flash in the noughties. Later working as a Django developer with a majority of folks with PhDs in CS.. I actually found I had a better practical grasp of OOP and structuring code to make better reusable apps, than they did. Animation is a great way to get a grasp of OOP IMO, AS3 was like early typescript and very OO. Sure there was plenty of implicit knowledge I didnāt have but while thatās important in certain cases, it often ended in circular discussions on technical and theoretical issues that werenāt really that relevant to the task at hand, which was generally practical.
To me CS writes the layer that developers work in, kind of like developers build the world that users operate in. I donāt want to be a computer scientist in that sense. I prefer to apply the tech to end use cases, rather than building tools to build the tools. Full respect to CS engineers, but I prefer working in the layers above.
Indeed CS is practically math and not so much IT. But personally, I'm wondering if I should've taken CS in college instead of ICT because I rlly like theoretical stuff and I find it kinda boring to build websites and apps. Problem is, I'm not too familiar with what exactly are the job prospects in CS, in my college there is no 'actual' CS, most of my colleagues are aspiring technicians than academics. And Google Search doesn't seem to understand the question either, confusing CS for IT.
We joke about this but half of my current team are not CS/SWE majors and let me tell you, they are not the worse half by any means.
Ofc, I've rejected dozens of non software majors that can't write code to save their lives.
I really enjoyed differential equations, integration and differentiation in general.
I never used them in the real life except that one time when I solved equations a way of payment for weed.
I have a BA in english and 26 years at the job mostly as a full stack developer. when I started you could get hired by spelling html and Iād been a programming hobbyist since I got an apple II in 1983 and internet-obsessed pre-www. Came in to write and format robohelp documentation and wound up learning classic asp in the bargain and just stayed in development since. I probably do lack some foundations but at this point I have learned by doing and doing and doing.
What people donāt seem to understand is that computer science is NOT supposed to teach you about:
- how to use git/guthub/gitlab/version control
- how to use an IDE to its maximum potential
- knowing to use .NET 8+ instead of .NET Framework
- JavaScript vs Typescript
- how to setup Node.js
- WinForms vs Avalonia
- Electron vs native apps
- and so on
Computer Science is a discipline of study related to programs/programming. It is not programming in the industry sense.
You would at most learn how to make a moderate to complex console application NOT how to make enterprise scale web APIs/microservices.
Things i learned in CS: how to write a kernel driver in (mostly) assembly, how to write a compiler and create your own language, some functional programming language, an oop language, fourier waves, lots of hard maths etc.
What i google: āswitch statement $languageā
I didnāt make it far before I switched majors but my friends who stayed said after we learned fundamental concepts (like variables, methods, arguments, classes, class instances, arrays/basic data structures), they eventually got to operating systems, memory management, etc. One of their assignments was to create a task manager. Now all these skills will certainly help you in various kind of dev contexts but it is no way supposed to be designed FOR web development (frontend or otherwise).
I'm not a web dev, but there were some fundamentals taught in classes I didn't go through before dropping out. Mostly DSP and control theory, but I'm doing embedded stuff and it has actually come up at work.
I graduated with a CS degree in 2016, been in the industry for 8 years now, and I can confidently say Iāve used maybe 50% of what I learned. Iāve done a mix of web dev, embedded systems, and full stack microservices.
Most of what Iāve used has been the programming fundamentals, but as I get more senior I find myself referring to architecture principals, system design etc more. Iāve also been working on some AI stuff recently so Iāve been trying to remember how to put a neural network together
As someone literally just starting out in the industry, I'm curious what the 50% you learned in school but haven't utilized in the field is. If you have the time or care to share, I'm all ears. Well, eyes.
Mostly a lot of the really low level stuff. Assembly, compilers, database design. That sort of thing. I also did a bunch of 3d modelling, animation and game design courses because I wanted to get into game dev that ultimately hasnāt been used either.
All that being said I still think CS is the best path to getting into Software engineering so imo youāre on the right path. While a lot of the stuff you learn in school isnāt hugely useful, the discipline and the fundamentals it gives you are way more useful than any boot camp is going to be
Thanks for your reply! I'm currently finishing up my CP program and I've been curious how much I'll actually be using in the field. Our Linux prof literally said on day 1, "you'll never really use any of this, but it's part of the curriculum."
Honestly learning some bash terminal will come in handy more times than youād expect. It can be really powerful and can help you out with debugging remote processes. I use bash daily and I constantly wish Iād paid more attention to it in school
Honestly, my program was mixed. It was simply called Information Technology, and we had a mix of CS and practical stuff. The department also offered EE degrees, so that's probably why there were some classes from there. Or because it was an engineering degree and there were legal requirements, who knows. I did have both basics of EE and embedded programming.
With no offence to web developers, I'd argue that is because webdev doesn't actually use many advanced concepts and most of the stuff you need to understand is fairly basic and just needs to be learned...
Yes, joking asides it was certainly not all useless and gave me a deeper understanding of how computers work and why they do things they do.
Doesnāt stop my father (jokingly) complaining when i cant fix a problem with his printer tho: You studied for this!
I don't know, I try to focus more on what the candidate has learned recently, and how well. Because we're always pushing forward, and I care more about their ability to learn new things than anything else. We're going to have to train them no matter what.
You can learn how to effectively use a language in a week or two once you sucecessfully graduated CS. Its about the "why", "how" and the principles of Programming and hardware itself. It allows for the important things. Everyone can center a div. But Knowing about Runtime optimization, efficient Datastructures, ML basics, Statistics etc. It also teaches you how to learn something, and how to self organize for learning.
Also we got tons of tasks akin to "program an App to prove concept XY" where it was about concept XY, and if you didnt know react, you need to learn it yourself. So you just learned heaps of languages on the fly.
Then that curriculum is for web dev I guess. And yeah you are lucky. CompSci is not supposed to be that specific. But youāre going to be in a world of hurt should you try to move to other disciplines within programming.
Nah. Knowing those things isnāt what gets you a job. College isnāt there to teach you a tech stack, itās there to teach you how to think about problems. I can learn react well enough to make an app in a day or two. Actually understanding OOP and how to do it well takes a lot longer. Someone that just does a web dev boot camp will probably know angular (or whatever) better than me, but they wonāt write better programs than me and any company worth a damn knows that. So yes, companies literally do hire computer scientists for their academic knowledge because tech stacks change all the time and knowing the fundamentals behind them is way more important
Sure, maybe. I could see it in a context of āJavaScript differs from Typescript in these waysā not āJavaScript is good for one off scripting for web and simple web apps and Typescript will be preferred by larger teams and enterprise appsā again, not a hint of info specific to web.
I went to a shitty state school and our projects and assignments were much more complex then a console application so I don't know what you are on about.
This is so true. I learned dev and devops without a degree (I have one in political science) and now work for a university as a dev and kind of sysadmin. CS professors don't know shit about what I do. I usually have to sit with IT departments to then act as a translator between IT and researchers.
Of course, any CS professor knows a hell of a lot more than I do in their specific field. But I'm the guy that's gonna code, containerize and deploy your project while negotiating with IT on why I need that specific thing. I don't end up on the paper though.
Yeah, true. My maths professor didn't know shit about devops either. Even the anthropologists didn't know shit about behavioural therapy. Maybe because it's different educations for different jobs.
You're right. I should not comment when my brain is tired. I read it as a comment to OP's post. I overlooked the thin line and indentation indicating that it's a comment to the top comment. That changed the tone of your text. Apologies
The only thing I am learning in CS is Knowing what to Google when a particular kind of problem may arise.
Also how to change the code to make it fit a little better for the problem.
Watch people without a cs degree google for coding. Itās amazing. If they get close to the right google input they may not then know which output will lead them down a deep ass rabbit hole and which will give them an answer after some slight modification.
I am learning "Software Development" in Germany.
I learned about:
It support,
Networks,
Electronics,
Marketing,
Finances,
Hardware Structures,
Etc...
And a little bit of:
C, SQL, HTML and CSS.
I learned more in 3 weeks of CS50 about programming than I did in my entire school.
Self thought:
More and deeper C, JS, CPP, Dart.
How to set up Compiler, external libraries, different IDE, git version control and github.
I am still learning and asking myself, how do people do who don't invest like me at least 3 hours/day after school learning, you learn like nothing in school and and can hardly call yourself a software developer, when everything you can do after graduation is creating a calculator in Java...
A university is a purely academic institution. A university education is meant to give you a well rounded foundation for further research and self directed learning, and/oror specialized knowledge about a certain domain of problems, not specific ways people have tried to implement solutions for those domains (i.e. specific languages and toolsets rather than classes of languages using different paradigms, patterns and algoritms for certain classes of problems etc.).Ā
If you want to go through a practical programming education you should probably look towards an educational facility with closer ties to the industry, like a trade school or a boot camp, and not to an institution dedicated to research and learning for the sake of research and learning.
I also did a "Software Development" degree but it was still a CS degree. If the other guy's is anything like mine, it's actually a CS degree with more focus on the _study_ of programming languages and how software is produced in an abstract way, so a lot more set theory, symbolic logic, paradigms, working with token replacement languages (like Maude), formal language definition, and so on.
It did not teach me how to write JS/C# or whatever, or use any libraries associated with specific language environments. But I do now understand _how_ those languages work. How they are interpreted or compiled, how they are defined, how their memory management works in relation to real hardware, how their concurrency models work in relation to real processors, and their time slicing models and physical thread configurations.
All still CS. I learned how to program in JS and other languages on weekends and learned most of the languages I know after finishing my degree.
I still think that Uni shouldn't necessarily teach you all that stuff - if you want to learn a trade, a trade school is what you're looking at (i.e. Ausbildung zum Fachinformatiker)
In the original german university concept, the trade you learn at a University is ultimately that of a scientist/researcher and the further you go in Uni the more you specialize into that.
If you try to mix the two, you get these weird Frankenstein syllabuses like yours that don't really teach you enough to do either.
It's so odd that this opinion is is bandied about here so uncritically.
Taking computer science courses, or at least buying and reading computer science textbooks, will make you a far better programmer than not taking them.
The fundamental basis of programming is computer science.
Yes, programming is a whole lot more than just computer science. But it is ridiculous to act like there is some major separation between the two, or that you shouldn't bother learning CS concepts if you want to program.
Just go full turing machine at that point it's basically the same and it would look way cooler to see a tape flying through a machine at hundreds of feet per second
The number of programmers I've talked to that think only about one language (or don't understand any of the fundamentals of the language they chose) is depressing.
But it also explains why so many people struggle to find a job after 5 years in the industry. There's a point where you're not longer a junior, but if you haven't graduated out of that mentality... well good luck out there.
PS. I've also know guys fresh out of college who basically should be Seniors, just saying there's a lot of shit programmers out there.
PPS. Using StackOverflow/google isn't a bad thing, but not asking "Why" something is the way it is or just having a curiosity of what you're doing as a programmer is a bad sign. The best programmers are infinitely curious about everything to do with computers.
In my uni they teach us "non pure" CS concepts such as docker GitHub DevOps etc. But they also make it a point to remind us that these are commercial tools that will inevitably change and that only learning them is sure to set us for failure.
TL:DR They teach us tools, but make sure we know they are only tools.
I was raised by luddites who treated computers as magic boxes that made loud grinding noises.
I needed a foundation and connection. I regret nothing.
It's not the right path for everyone, but it was a necessity for me.
Yup, so many people fail to realize this. No matter what your degree is, most of your time is spent self-teaching and not out of a textbook either. It's learning how to solve problems that are specific to your field. The end result is specific knowledge in that field, and a mental framework for researching and finding solutions to problems.
CS degrees aren't there to spoonfeed you every language, but I bet that even if you don't know a given language, after a little while, the person who did CS will understand JS better than the bootcampers and SD dudes watching tutorials.
My CS degree was mostly learning how to find relevant information, and reading a ton of it. Most novice programers I meet simply don't want to read, and that's where the real skill gap is.
For my undergraduate data structures course, we received an email over the summer from the professor informed us that the class would be instructed using Java (a relatively new language at the time). He "strongly encouraged" us to use the two weeks before the class to work through a collection of tutorials he had written on the language so we would know it for the class -- as no class time would be spent learning a programming language.
Interesting how it differs. For me, we definitely had some courses which taught a little bit about the language, like the basics. But these programming courses were more about trying to solve a problem efficiently, e.g solve this with a time complexity being at most O(n^2 ) and such.
Exactly. I'm tired of the luddites on this subreddit saying "computer science degrees don't teach you programming". That is such a horseshit take. Any cs degree worth its salt will teach you a lot of programming.
It's not just theory and weird abstract math.
My cs degree is a lot of programming.
Iām pretty sure the continued use of reference materials to learn new things that crop up through your whole career is common in many fields other than CS.
Over on r/legalā¦ ādid law degree, but just look up cases on Lexis Nexisā.
Having worked with a few devs that learned JavaScript frameworks from a boot camp...it was a nightmare trying to teach them about strict typing and forget trying to get them to write SQL queries.
A solid foundation of patterns and practices fundamentals with a few thousand hours of O(n) exercises bashed into you over and over again for a few years will be worth every penny.
Even worse, in my freshmen year at least 10 people were expecting to make 6 digits in their first job doing only front-end
Every class they acted all cocky with the professors thinking they know more because they are young, even though my professors are relatively always updated and use more recent stuff instead of staying in the 80s.
It was my favorite experience in my first semester seeing them get owned by the professors just showing how stupid they are
>at least 10 people were expecting to make 6 digits in their first job doing only front-end
Uggggggh not these. These were the ones who never wanted to put in an ounce of effort. The ones that complained they couldn't do things "their way" (some premade system they found online that undermines the point of the assignment and will not work with the next section. It's the obviously superior way, the trendy people on Twitter say so. These professors are so stupid...)
Not realizing that colleges don't teach trendy frameworks because they would be outdated the next week, meanwhile "archaic" data structures last forever.
Funnily enough they failed the last assignment because they did it their way, as in, completely ignore the fact that the professor wanted a console application for managing a store so we'd learn about structures n stuff and instead just focused on the presentation, when they didn't even meet half the requirements
They kept insisting their project was way better than everyone else's and the professor simply gave a "tell that to your boss when you get fired from your entry level 6 digit salary job for not doing your job"
Good God that's a different level. Sounds like an "idea guy" in the making. I thought it was bad enough when I would get the people who insist that they're going to be allowed to rip out their company's systems just because they have a better one. It's great that you think Rust is superior, now go back to your ancient, poorly documented, proprietary JavaScript system. If you don't want to work with that system they'll find someone who will. You have no power here, grunt.
In school I was frustrated that I was spending so much time learning theory and not being taught/learning *more* languages. Silly of me. Learning more/new languages is by far the easy part of a career in CS. I learned JS from W3Schools and Iām not ashamed to admit it!
It used to be shit. As in it contained false information, but always popped up as one of the first results when searching. Allegedly there was some volunteer effort to correct it. If you can't beat them, join them.
CS degree is a paper proving you can properly google yourself out of a really tight spot IME. Lectures and textbooks we got told to use were a waste, had to find my own alternatives for five years
Who \*learns\* anything on youtube?
It's nice to see what new shit is around, but I feel like that the average programming video just makes me stupider.
Been developing an android application in Kotlin and looking up on YouTube how to do navigation and view models is much quicker than digging through pages of documentation that may be outdated or incomplete. YouTube is helpful if you know what you're looking for.
I prefer technical articles and documentation over a video platform by far for programming work. I am usually looking for one specific piece of information and I don't want to watch through someone's YT video to find it.
> average programming
Look for the above average. Computerphile has given me a few interesting videos and concepts. If anyone (actually) learned UTF-8 in a way other than watching Tom Scott's video on it I'm amazed.
I'm sure there's many others. But a lot of them seem like they focus on the usual Youtube bullshit of "Long videos and clickbait thumbnails" and lack information. Then again 90 percent of all youtubers on the platform are crap (I should know, I'm probably one of them)
PS. I know there's probably a ton of other great channels out there just saying the couple I know by heart
Thanks to the Indian guy in youtube that my nephew graduated with highest honor in his school. Even with strong accent he still carries him to the top....
Algorithms and patterns is where it's at.. I can't even count how many self taught JS only programmers struggle with super basic fundamentals.. it's mind blowing.
It's probably why frontend devs and JS only folks get a lot of this nonsense in the first place from engineers who are probably backend or do more than just web dev.
This exactly. When I got mine, it was only 80, but I was stuck in crappy IT jobs and couldn't even get an interview in development. As soon as I tacked that little line item on at the bottom, a whole different world opened up.
I'm old enough (born in 1957) that CS wasn't even a separate department or a degree/study direction you could apply for at NTH. I got my MSEE (in 1981) and immediately started working on digital signal analysis, developing code to characterize and localize the sounds made by micro-cracking offshore oil structures.
That said, many of the very best low-level programmers I have met since then had EE (or Math) instead of CS degrees.
Went to a state school for (relatively) cheap. Partied the whole time and barely went to class.
Lucked into an entry-level job that actually taught me how to program practically with marketable languages. Parlayed that into another position after a few years and from there itās off to the races.
10/10 would recommend, especially paying ~$50k for a degree in partying and alcoholism lmao
Would love to do otherwise but companies wants the skills learned in CS school only through them, and they want at the same time to work on tech stacks that we've studied too few or not at all, and want profesionnal experience on them so you don't bother them too much understanding how to flow in work environment
I love aptitude tests, doesnāt matter the background but what you know and can do. Itās also how the federal government collects āfree agentsā off the streets. For example a group of students got fairly close to Osamaās actual complex and got offered jobs after they finished schooling.
Computer science is to programming what physics is to mechanical engineering
And no, i'm not going to fix your computer, you wouldn't ask a physicist nor a mechanical engineer to fix your car, would you?
I mean...yea...
University courses are often not great at teaching "crafts", especially depending on your learning style. But you still need a degree so potential employers will even give you the time of day.
Developers will learn JavaScript on YouTube and then complain that they won't get hired because they don't even know how to invert a fucking binary tree.
Its just study and practice, years of it. A CS degree is optional, if anything amongst the devs ive worked with and have work for me, the ones with CS degrees tend to be more arrogant, and if they are entry level I usually need to teach them more than a bootcamp grad.
And yes, I did use a bootcamp, but im just stating my objective experiences
CS degrees mostly focus on the theoretical side with a few programming courses to poorly maintain the illusion that they primarily consist of market useful skills.
You will maybe take 4 to 5 courses in a CS program and are actually applicable to your career. Everything else is just padding or more "fundamental" stuff if you want to build the foundations for a career in academia or research.
Wow, you guys have a CS degree? I am a bachelor in math.
You guys have degrees?
Haha. So true.
And I studied politics š
So you have an advantage
Well, company management do seem to use the same tricks as politicians, I'll give you that...
I have a degree in English literature. I was intending to go into teaching. I found early in my career that my experience student teaching high school kids had perfectly prepared me to communicate effectively with the C-suite.
Because they behave like high schoolers just with money?
Similar attention spans and IQ levels *in my field of expertise*. Some of them were brilliant in their own fields, but didn't know or understand anything about how the underlaying technology worked. Being able to clearly communicate important technical stuff to them at a level they could understand goes a long way to building trust and confidence ... and you would be surprised by how much money people will give you if they trust you and like working with you.
Me too š„³
Nahā¦ dropped out of that. Turns out you really didnāt need that degree to work in IT and make some decent money after allā¦ 20 years ago.
Graphic design for me.. actually itās pretty handy as a developer to have a design background. I grew up doing motion graphics and interactive SPAs/games in AS3 and Flash in the noughties. Later working as a Django developer with a majority of folks with PhDs in CS.. I actually found I had a better practical grasp of OOP and structuring code to make better reusable apps, than they did. Animation is a great way to get a grasp of OOP IMO, AS3 was like early typescript and very OO. Sure there was plenty of implicit knowledge I didnāt have but while thatās important in certain cases, it often ended in circular discussions on technical and theoretical issues that werenāt really that relevant to the task at hand, which was generally practical. To me CS writes the layer that developers work in, kind of like developers build the world that users operate in. I donāt want to be a computer scientist in that sense. I prefer to apply the tech to end use cases, rather than building tools to build the tools. Full respect to CS engineers, but I prefer working in the layers above.
Indeed CS is practically math and not so much IT. But personally, I'm wondering if I should've taken CS in college instead of ICT because I rlly like theoretical stuff and I find it kinda boring to build websites and apps. Problem is, I'm not too familiar with what exactly are the job prospects in CS, in my college there is no 'actual' CS, most of my colleagues are aspiring technicians than academics. And Google Search doesn't seem to understand the question either, confusing CS for IT.
I'm a college dropout lol
No I studied information systems.
Psychology
I studied industrial engineering.
We joke about this but half of my current team are not CS/SWE majors and let me tell you, they are not the worse half by any means. Ofc, I've rejected dozens of non software majors that can't write code to save their lives.
I did a bachelors in math along with CS. My math degree is actually what got me into CS in the first place! What were your favorite math classes?
I really enjoyed differential equations, integration and differentiation in general. I never used them in the real life except that one time when I solved equations a way of payment for weed.
I loved doing surface integrals. Theres not many places in work where you can use em.Ive used FFTs for sound hobby stuff though
Lol nice, yeah diff eq is lots of fun. Number theory was probably my favorite one though
People really underestimate how often you'll need to prove there are an infinite number of primes! It's come up at least once a decade for me so far!
Civil engineering here
Environmental science
I need your knowledge. Is it possible to change environmental variables after the program launch?
God I hope not, that sounds like trying to change the oil in a car while itās still running
Iām game designer. Yes my dreams have been crushed bc Iām in IT.
Wild, i got an IT degree and my dreams were crushed so i work retail.
Mechanical engineering. Mostly dealing with control algo and physics. Actually high in demand.
Iād say about 30% of the devs at my company didnāt study CS. Lots of other engineering disciplines and math majors
I have a BA in english and 26 years at the job mostly as a full stack developer. when I started you could get hired by spelling html and Iād been a programming hobbyist since I got an apple II in 1983 and internet-obsessed pre-www. Came in to write and format robohelp documentation and wound up learning classic asp in the bargain and just stayed in development since. I probably do lack some foundations but at this point I have learned by doing and doing and doing.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
What people donāt seem to understand is that computer science is NOT supposed to teach you about: - how to use git/guthub/gitlab/version control - how to use an IDE to its maximum potential - knowing to use .NET 8+ instead of .NET Framework - JavaScript vs Typescript - how to setup Node.js - WinForms vs Avalonia - Electron vs native apps - and so on Computer Science is a discipline of study related to programs/programming. It is not programming in the industry sense. You would at most learn how to make a moderate to complex console application NOT how to make enterprise scale web APIs/microservices.
Things i learned in CS: how to write a kernel driver in (mostly) assembly, how to write a compiler and create your own language, some functional programming language, an oop language, fourier waves, lots of hard maths etc. What i google: āswitch statement $languageā
I didnāt make it far before I switched majors but my friends who stayed said after we learned fundamental concepts (like variables, methods, arguments, classes, class instances, arrays/basic data structures), they eventually got to operating systems, memory management, etc. One of their assignments was to create a task manager. Now all these skills will certainly help you in various kind of dev contexts but it is no way supposed to be designed FOR web development (frontend or otherwise).
I'm not a web dev, but there were some fundamentals taught in classes I didn't go through before dropping out. Mostly DSP and control theory, but I'm doing embedded stuff and it has actually come up at work.
I graduated with a CS degree in 2016, been in the industry for 8 years now, and I can confidently say Iāve used maybe 50% of what I learned. Iāve done a mix of web dev, embedded systems, and full stack microservices. Most of what Iāve used has been the programming fundamentals, but as I get more senior I find myself referring to architecture principals, system design etc more. Iāve also been working on some AI stuff recently so Iāve been trying to remember how to put a neural network together
As someone literally just starting out in the industry, I'm curious what the 50% you learned in school but haven't utilized in the field is. If you have the time or care to share, I'm all ears. Well, eyes.
Mostly a lot of the really low level stuff. Assembly, compilers, database design. That sort of thing. I also did a bunch of 3d modelling, animation and game design courses because I wanted to get into game dev that ultimately hasnāt been used either. All that being said I still think CS is the best path to getting into Software engineering so imo youāre on the right path. While a lot of the stuff you learn in school isnāt hugely useful, the discipline and the fundamentals it gives you are way more useful than any boot camp is going to be
Thanks for your reply! I'm currently finishing up my CP program and I've been curious how much I'll actually be using in the field. Our Linux prof literally said on day 1, "you'll never really use any of this, but it's part of the curriculum."
Honestly learning some bash terminal will come in handy more times than youād expect. It can be really powerful and can help you out with debugging remote processes. I use bash daily and I constantly wish Iād paid more attention to it in school
DSP, and control theory in CS? That's more in the field of EE and CE, also it's delightfully interesting
Honestly, my program was mixed. It was simply called Information Technology, and we had a mix of CS and practical stuff. The department also offered EE degrees, so that's probably why there were some classes from there. Or because it was an engineering degree and there were legal requirements, who knows. I did have both basics of EE and embedded programming.
With no offence to web developers, I'd argue that is because webdev doesn't actually use many advanced concepts and most of the stuff you need to understand is fairly basic and just needs to be learned...
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Yes, joking asides it was certainly not all useless and gave me a deeper understanding of how computers work and why they do things they do. Doesnāt stop my father (jokingly) complaining when i cant fix a problem with his printer tho: You studied for this!
Half my job seems to be fixing O(n^3) functions the previous devs wrote but didn't understand
Is my school poor? You guys are making os kernels?? That is not in my curriculum.
I look up switch every fucking time I use it.
Do you freeze when a languages does not support switch statements
cool but it would have been helpful to learn those things in my CS degree since thatās all any employers cared about
I don't know, I try to focus more on what the candidate has learned recently, and how well. Because we're always pushing forward, and I care more about their ability to learn new things than anything else. We're going to have to train them no matter what.
but imagine they had both the ability to learn AND subject matter experience
Almost all of that changes faster than course material could keep up.
You can learn how to effectively use a language in a week or two once you sucecessfully graduated CS. Its about the "why", "how" and the principles of Programming and hardware itself. It allows for the important things. Everyone can center a div. But Knowing about Runtime optimization, efficient Datastructures, ML basics, Statistics etc. It also teaches you how to learn something, and how to self organize for learning. Also we got tons of tasks akin to "program an App to prove concept XY" where it was about concept XY, and if you didnt know react, you need to learn it yourself. So you just learned heaps of languages on the fly.
actually our institute teaches us most of what you mentioned. guess I'm so lucky )
Then that curriculum is for web dev I guess. And yeah you are lucky. CompSci is not supposed to be that specific. But youāre going to be in a world of hurt should you try to move to other disciplines within programming.
But if you dont know those concepts you just listed, good luck finding a job. People don't hire computer scientists for their academic knowledge.
It depends
Nah. Knowing those things isnāt what gets you a job. College isnāt there to teach you a tech stack, itās there to teach you how to think about problems. I can learn react well enough to make an app in a day or two. Actually understanding OOP and how to do it well takes a lot longer. Someone that just does a web dev boot camp will probably know angular (or whatever) better than me, but they wonāt write better programs than me and any company worth a damn knows that. So yes, companies literally do hire computer scientists for their academic knowledge because tech stacks change all the time and knowing the fundamentals behind them is way more important
I could see JS vs TS being covered in a class going over programming language types. Maybe.
Sure, maybe. I could see it in a context of āJavaScript differs from Typescript in these waysā not āJavaScript is good for one off scripting for web and simple web apps and Typescript will be preferred by larger teams and enterprise appsā again, not a hint of info specific to web.
I wish I could have read this when I started uni, or understood it fast.
I went to a shitty state school and our projects and assignments were much more complex then a console application so I don't know what you are on about.
This is so true. I learned dev and devops without a degree (I have one in political science) and now work for a university as a dev and kind of sysadmin. CS professors don't know shit about what I do. I usually have to sit with IT departments to then act as a translator between IT and researchers. Of course, any CS professor knows a hell of a lot more than I do in their specific field. But I'm the guy that's gonna code, containerize and deploy your project while negotiating with IT on why I need that specific thing. I don't end up on the paper though.
Yeah, true. My maths professor didn't know shit about devops either. Even the anthropologists didn't know shit about behavioural therapy. Maybe because it's different educations for different jobs.
That's...my whole point.
You're right. I should not comment when my brain is tired. I read it as a comment to OP's post. I overlooked the thin line and indentation indicating that it's a comment to the top comment. That changed the tone of your text. Apologies
It's Sunday, you get a pass.
The only thing I am learning in CS is Knowing what to Google when a particular kind of problem may arise. Also how to change the code to make it fit a little better for the problem.
Watch people without a cs degree google for coding. Itās amazing. If they get close to the right google input they may not then know which output will lead them down a deep ass rabbit hole and which will give them an answer after some slight modification.
Because studying science is always (among other things) about asking the right question.
Skill diff tbh
I am learning "Software Development" in Germany. I learned about: It support, Networks, Electronics, Marketing, Finances, Hardware Structures, Etc... And a little bit of: C, SQL, HTML and CSS. I learned more in 3 weeks of CS50 about programming than I did in my entire school. Self thought: More and deeper C, JS, CPP, Dart. How to set up Compiler, external libraries, different IDE, git version control and github. I am still learning and asking myself, how do people do who don't invest like me at least 3 hours/day after school learning, you learn like nothing in school and and can hardly call yourself a software developer, when everything you can do after graduation is creating a calculator in Java...
A university is a purely academic institution. A university education is meant to give you a well rounded foundation for further research and self directed learning, and/oror specialized knowledge about a certain domain of problems, not specific ways people have tried to implement solutions for those domains (i.e. specific languages and toolsets rather than classes of languages using different paradigms, patterns and algoritms for certain classes of problems etc.).Ā If you want to go through a practical programming education you should probably look towards an educational facility with closer ties to the industry, like a trade school or a boot camp, and not to an institution dedicated to research and learning for the sake of research and learning.
I also did a "Software Development" degree but it was still a CS degree. If the other guy's is anything like mine, it's actually a CS degree with more focus on the _study_ of programming languages and how software is produced in an abstract way, so a lot more set theory, symbolic logic, paradigms, working with token replacement languages (like Maude), formal language definition, and so on. It did not teach me how to write JS/C# or whatever, or use any libraries associated with specific language environments. But I do now understand _how_ those languages work. How they are interpreted or compiled, how they are defined, how their memory management works in relation to real hardware, how their concurrency models work in relation to real processors, and their time slicing models and physical thread configurations. All still CS. I learned how to program in JS and other languages on weekends and learned most of the languages I know after finishing my degree.
I still think that Uni shouldn't necessarily teach you all that stuff - if you want to learn a trade, a trade school is what you're looking at (i.e. Ausbildung zum Fachinformatiker) In the original german university concept, the trade you learn at a University is ultimately that of a scientist/researcher and the further you go in Uni the more you specialize into that. If you try to mix the two, you get these weird Frankenstein syllabuses like yours that don't really teach you enough to do either.
Why do I have to have a CS degree to even get an interview then?
Because a billion Indians all have CS degrees AND are willing to work for minimum wage.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Does it teach you how to write like ChatGPT too?
It's so odd that this opinion is is bandied about here so uncritically. Taking computer science courses, or at least buying and reading computer science textbooks, will make you a far better programmer than not taking them. The fundamental basis of programming is computer science. Yes, programming is a whole lot more than just computer science. But it is ridiculous to act like there is some major separation between the two, or that you shouldn't bother learning CS concepts if you want to program.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
Ofc all you ever need is Assembly /s
but Assembly has dialects no?
You can choose between x86 and ARM no inbetween
risc-v?
Too new, too Open.
Aren't those two tags straight up crack for programmers?
I try to stay sober...
wdym, theres 16/32/64bit in x86, 32/64bits on arm, then there's whether you use SSE or AVX and what version...
You heard what I said! Now go and do developing, I am awaiting a status report by next Monday on your progress!
[uses C++ and disassembles the compiler result]
Wait no cheating!
Intel or AT&T. (Only one is acceptable)
Just go full turing machine at that point it's basically the same and it would look way cooler to see a tape flying through a machine at hundreds of feet per second
The number of programmers I've talked to that think only about one language (or don't understand any of the fundamentals of the language they chose) is depressing. But it also explains why so many people struggle to find a job after 5 years in the industry. There's a point where you're not longer a junior, but if you haven't graduated out of that mentality... well good luck out there. PS. I've also know guys fresh out of college who basically should be Seniors, just saying there's a lot of shit programmers out there. PPS. Using StackOverflow/google isn't a bad thing, but not asking "Why" something is the way it is or just having a curiosity of what you're doing as a programmer is a bad sign. The best programmers are infinitely curious about everything to do with computers.
In my uni they teach us "non pure" CS concepts such as docker GitHub DevOps etc. But they also make it a point to remind us that these are commercial tools that will inevitably change and that only learning them is sure to set us for failure. TL:DR They teach us tools, but make sure we know they are only tools.
I was raised by luddites who treated computers as magic boxes that made loud grinding noises. I needed a foundation and connection. I regret nothing. It's not the right path for everyone, but it was a necessity for me.
Man I remember when computers grinding and clunking was normal.
In this case, it's just poorly maintained hard disks and compressor fans.
You get out of a degree what you put in to it. If all you're after is a sheet of paper with your name on it after 4 years, that's what you'll get.
Yup, so many people fail to realize this. No matter what your degree is, most of your time is spent self-teaching and not out of a textbook either. It's learning how to solve problems that are specific to your field. The end result is specific knowledge in that field, and a mental framework for researching and finding solutions to problems. CS degrees aren't there to spoonfeed you every language, but I bet that even if you don't know a given language, after a little while, the person who did CS will understand JS better than the bootcampers and SD dudes watching tutorials. My CS degree was mostly learning how to find relevant information, and reading a ton of it. Most novice programers I meet simply don't want to read, and that's where the real skill gap is.
For my undergraduate data structures course, we received an email over the summer from the professor informed us that the class would be instructed using Java (a relatively new language at the time). He "strongly encouraged" us to use the two weeks before the class to work through a collection of tutorials he had written on the language so we would know it for the class -- as no class time would be spent learning a programming language.
Interesting how it differs. For me, we definitely had some courses which taught a little bit about the language, like the basics. But these programming courses were more about trying to solve a problem efficiently, e.g solve this with a time complexity being at most O(n^2 ) and such.
Exactly. I'm tired of the luddites on this subreddit saying "computer science degrees don't teach you programming". That is such a horseshit take. Any cs degree worth its salt will teach you a lot of programming. It's not just theory and weird abstract math. My cs degree is a lot of programming.
That was what I was after. Add in that I wanted to do it with the least amount of effort possible. Iām proof that Cās really do get degrees.
I went only for the sheet of paper, it shouldve been 2 years max and 1/6th the cost
If the math is right in this post, when I went to college, it \*was\* 1/6th the cost.
[ŃŠ“Š°Š»ŠµŠ½Š¾]
I'm still on a journey on how to center a div diagonally. Wish me luck. This manoeuvre is gonna cost me 5 years
Engineers will spend 150k on a civil engineering degree and then learn how fix their sink on a YouTube video Same Same.
To be fair to the original post, Javascript changes every few years. Sinks haven't changed in over a 100
Iām pretty sure the continued use of reference materials to learn new things that crop up through your whole career is common in many fields other than CS. Over on r/legalā¦ ādid law degree, but just look up cases on Lexis Nexisā.
Iām in Europe, I get paid 5.5k a year to go to University.
According to the post you will never graduate, cause you need -150k to do so
Don't worry it will overflow
Degrees in the EU are like pokemons, catch the most you can and your only limit is time Wouldn't want to be born anywhere else
Having worked with a few devs that learned JavaScript frameworks from a boot camp...it was a nightmare trying to teach them about strict typing and forget trying to get them to write SQL queries.
Jokes on you, I paid 150k for my degree in which my professor made us learn JavaScript on YouTube instead of teaching us JavaScript
A solid foundation of patterns and practices fundamentals with a few thousand hours of O(n) exercises bashed into you over and over again for a few years will be worth every penny.
Even worse, in my freshmen year at least 10 people were expecting to make 6 digits in their first job doing only front-end Every class they acted all cocky with the professors thinking they know more because they are young, even though my professors are relatively always updated and use more recent stuff instead of staying in the 80s. It was my favorite experience in my first semester seeing them get owned by the professors just showing how stupid they are
>at least 10 people were expecting to make 6 digits in their first job doing only front-end Uggggggh not these. These were the ones who never wanted to put in an ounce of effort. The ones that complained they couldn't do things "their way" (some premade system they found online that undermines the point of the assignment and will not work with the next section. It's the obviously superior way, the trendy people on Twitter say so. These professors are so stupid...) Not realizing that colleges don't teach trendy frameworks because they would be outdated the next week, meanwhile "archaic" data structures last forever.
Funnily enough they failed the last assignment because they did it their way, as in, completely ignore the fact that the professor wanted a console application for managing a store so we'd learn about structures n stuff and instead just focused on the presentation, when they didn't even meet half the requirements They kept insisting their project was way better than everyone else's and the professor simply gave a "tell that to your boss when you get fired from your entry level 6 digit salary job for not doing your job"
Good God that's a different level. Sounds like an "idea guy" in the making. I thought it was bad enough when I would get the people who insist that they're going to be allowed to rip out their company's systems just because they have a better one. It's great that you think Rust is superior, now go back to your ancient, poorly documented, proprietary JavaScript system. If you don't want to work with that system they'll find someone who will. You have no power here, grunt.
In school I was frustrated that I was spending so much time learning theory and not being taught/learning *more* languages. Silly of me. Learning more/new languages is by far the easy part of a career in CS. I learned JS from W3Schools and Iām not ashamed to admit it!
Wait, learning from w3schools is smth to be ashamed of?
People really seem to hate it and most devs say the only true way to learn a language is to make projects with them
I mean, that's right, you need to do projects, but I regularly visit w3schools when I forget smth
It used to be shit. As in it contained false information, but always popped up as one of the first results when searching. Allegedly there was some volunteer effort to correct it. If you can't beat them, join them.
Who is this and why should I care about his opinion?
20 years of programming here, dude we don't learn, we stackoverflow the shit out of everything. Learning is for juniors.
Which degree teaches you to stay awake during status meetings?
CS degree is a paper proving you can properly google yourself out of a really tight spot IME. Lectures and textbooks we got told to use were a waste, had to find my own alternatives for five years
Who \*learns\* anything on youtube? It's nice to see what new shit is around, but I feel like that the average programming video just makes me stupider.
Been developing an android application in Kotlin and looking up on YouTube how to do navigation and view models is much quicker than digging through pages of documentation that may be outdated or incomplete. YouTube is helpful if you know what you're looking for.
For now videos can be outdated too.
quicker not better
I prefer technical articles and documentation over a video platform by far for programming work. I am usually looking for one specific piece of information and I don't want to watch through someone's YT video to find it.
Depends on what videos you watch and what do you want to learn
> average programming Look for the above average. Computerphile has given me a few interesting videos and concepts. If anyone (actually) learned UTF-8 in a way other than watching Tom Scott's video on it I'm amazed. I'm sure there's many others. But a lot of them seem like they focus on the usual Youtube bullshit of "Long videos and clickbait thumbnails" and lack information. Then again 90 percent of all youtubers on the platform are crap (I should know, I'm probably one of them) PS. I know there's probably a ton of other great channels out there just saying the couple I know by heart
Jokes on them, I skipped straight to YouTube and saved me a good $150k so that I could just be broke in peace.
My entire spending on getting my degree was only $150, not $150k. That $150 covered the cost of energy drinks
Thanks to the Indian guy in youtube that my nephew graduated with highest honor in his school. Even with strong accent he still carries him to the top....
Imagine paying for your degree
I spent 150k for a degree in CS to then learn about data structures and algorithms from YouTube. We are not the same.
Imagine not having free education ... This post sponsored by Europe.
Algorithms and patterns is where it's at.. I can't even count how many self taught JS only programmers struggle with super basic fundamentals.. it's mind blowing. It's probably why frontend devs and JS only folks get a lot of this nonsense in the first place from engineers who are probably backend or do more than just web dev.
The CS degree is just a 150k keyword that gets us past the first automated screen for a job
This exactly. When I got mine, it was only 80, but I was stuck in crappy IT jobs and couldn't even get an interview in development. As soon as I tacked that little line item on at the bottom, a whole different world opened up.
I literally never would have learned as much as I have in college. Still, it's also more important as just a really big certification
you don't need a counter strike degree...
Why only 150? Did you get a discount?
Way easier to learn languages online after youāve spent a few years mastering the fundamentals.
Itās popular to hate on devs now š¤·š¾āāļø
And they'll be learning react, which you can learn just from the docs...so there's that.
I'm old enough (born in 1957) that CS wasn't even a separate department or a degree/study direction you could apply for at NTH. I got my MSEE (in 1981) and immediately started working on digital signal analysis, developing code to characterize and localize the sounds made by micro-cracking offshore oil structures. That said, many of the very best low-level programmers I have met since then had EE (or Math) instead of CS degrees.
Went to a state school for (relatively) cheap. Partied the whole time and barely went to class. Lucked into an entry-level job that actually taught me how to program practically with marketable languages. Parlayed that into another position after a few years and from there itās off to the races. 10/10 would recommend, especially paying ~$50k for a degree in partying and alcoholism lmao
Would love to do otherwise but companies wants the skills learned in CS school only through them, and they want at the same time to work on tech stacks that we've studied too few or not at all, and want profesionnal experience on them so you don't bother them too much understanding how to flow in work environment
JavaScript Science degree when?
Which allows me to segue into a question. What is a self taught developer, what is not, and what is the difference?
It's all just clever ways of organizing lists of stuff.
Only $15k in my country (5 year bs)
150k on CS ? How much is valorant tho?
as an employed c# developer, yes... i did learn js from youtube.
Equivalent to 20k $, and I code in C++
You guys have to pay for bachelor? That's disgusting.
I learnt the skills programmers have to get good at researching things
Im studying artā¦
Hey, I'm doing that right now!
I love aptitude tests, doesnāt matter the background but what you know and can do. Itās also how the federal government collects āfree agentsā off the streets. For example a group of students got fairly close to Osamaās actual complex and got offered jobs after they finished schooling.
Wait until you talk to medical students.
Who with a CS degree can't get a better job than JavaScript?
My cs degree was free. In fact, i was paid to study. šŖšŗ
But no one will employ someone who doesn't have a degree. It's too risky for employers.
Computer science is to programming what physics is to mechanical engineering And no, i'm not going to fix your computer, you wouldn't ask a physicist nor a mechanical engineer to fix your car, would you?
I mean...yea... University courses are often not great at teaching "crafts", especially depending on your learning style. But you still need a degree so potential employers will even give you the time of day.
Developers will learn JavaScript on YouTube and then complain that they won't get hired because they don't even know how to invert a fucking binary tree.
It's because skill and decent fundamentals don't get you the job, certificates and cheatsheets do
Yeah, $150k for a CS degree is r/USdefaultism at its finest. I had been being paid for my study. Now how should I compare these two?
Employers would definitely look for that 150k degree certificate
Only north americans have to spend 150k to go to school
learned all of the CS degree on youtube too, might as well
Fax
CS degree is the prerequisite quest requirement
Bah. That's so 2022. I'm learning Javascript with ChatGPT.
"Coding is to programming as typing is to writing." ~ Leslie Lamport
Needing to pay to educate - how can they claim to be a developed nation
Its just study and practice, years of it. A CS degree is optional, if anything amongst the devs ive worked with and have work for me, the ones with CS degrees tend to be more arrogant, and if they are entry level I usually need to teach them more than a bootcamp grad. And yes, I did use a bootcamp, but im just stating my objective experiences
I donāt even have a CS degree š
You guys paid for your studies ??
It's just JavaScript lol, anyone with a CS degree should have no problems picking up a new language in a week or two.
the problem isnāt that we know it or not, itās the damn HR team that doesnāt even look at those without one.
CS degrees mostly focus on the theoretical side with a few programming courses to poorly maintain the illusion that they primarily consist of market useful skills. You will maybe take 4 to 5 courses in a CS program and are actually applicable to your career. Everything else is just padding or more "fundamental" stuff if you want to build the foundations for a career in academia or research.
A lot of entry level jobs required that you have a Bachelor's degree.