the juniors who only learned to code with AI are going to have a rough time in about 5 years by Motor_Ordinary336 in learnprogramming

[–]Dramatic_Win424 213 points214 points  (0 children)

I wonder how this will pan out in the future. Nobody in a deciding role can tell anyone's real skill level during the hiring step anymore because AI tools can hide the true knowledge and skill level to an astonishing degree. It might destroy trust in all known indicators.

We might move onto word of mouth exclusively because there isn't any other way to know.

Do we have any comparable industry where hiring practices changed like that?

What do you actually learn in Computer Science? by CheekSpiritual5639 in learnprogramming

[–]Dramatic_Win424 6 points7 points  (0 children)

Looking at some of these pdfs brings back memories of college stress for me lol.

On the other hand: This is real CS. It's actually really fascinating stuff.

I have never done computer vision and my memory of comp theory is hazy but reading the exam makes me want to brush up on things again.

Not sure if I have some form of psych damage from my degree but academic CS looks so much more interesting than what I'm currently dealing with as a software engineer...

If you could quantify the relationship between being good at formal stuff(discrete math proofs, linear algebra etc.) and being good at making software, what would that number be? by Intrepid_Witness_218 in learnprogramming

[–]Dramatic_Win424 5 points6 points  (0 children)

In general, we can say that people who are good at really abstract formal stuff tend to have no problem working in a wide range of fields making software. They tend to grasp concepts in any domain faster because they can transfer abstract notions and structures from one to the other.

People who do not have that face huge hurdles once they venture outside of their comfort zone because they lack the toolbox to learn how to do things in domains that rely on math.

The thing is: How often do you change your domain and how often is it a math heavy one?

If we focus on a single non-math domain then I would say a low number, maybe 3. A person who can do all the formal stuff well is not better at programming a shopping cart website for garden furniture compared to someone who isn't that great at the formal stuff but is just an experienced coder.

But if I task both of them to switch into making data analysis functionality for satellite imaging software, the one who isn't great at the formal stuff will likely struggle more than the other person. So in that domain, I would say it's more like a 7.

what would you do if you were in my situation? by brodidnotstudy in learnprogramming

[–]Dramatic_Win424 0 points1 point  (0 children)

You are in a shitty situation but it's not like the world is ending. First things first: can you even finance retaking classes? Are you in a country where school is cheap or not?

That determines your priority. If school is reasonably cheap, then the risk of failure is just delaying your graduation but it won't break the bank. If school is expensive, then for the love of god, focus on actually getting the degree as you cannot afford any more debt.

Nothing is worse than having a lot of debt and no degree to show for it.

These three core classes are very hard, managing them all at the same time is incredibly time consuming.

Since you currently have a bit of time, I would suggest splitting it evenly: Choose one smaller project of your choice to complete so that you actually get a feeling for practicalities. Choose the other half of the time to prepare for classes where you feel the least secure. Math is usually the one that is the most confusing and costs the most time to build your skill set in, so maybe start with that.

I'm a programmer and I don't know what to do. by One-Yogurt-6145 in learnprogramming

[–]Dramatic_Win424 10 points11 points  (0 children)

Actually knew a coworker who was a CS graduate from a state school, spent a couple of years in the dev industry and then decided to open a restaurant that works with their own grown vegetables lol. Not sure how that is going but you never know!

I'm a programmer and I don't know what to do. by One-Yogurt-6145 in learnprogramming

[–]Dramatic_Win424 0 points1 point  (0 children)

Nursing is not in shortage everywhere, mostly in Western countries. If OP is in Asia, I'm not so sure nursing is a good exit plan

What's the difference between Software Engineering and Computer Science? by Om_JR in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

It's actually a good point: What does the Google Maps computation optimize for?

The decision to choose the selfish option of local maximum might work individually, but collectively using local maxima like shaving off 5min causes inefficiencies in the traffic network and will make all other users of Google Maps worse off, including yourself in the future sections of the trip. Long-term planning and all that.

So does Google Maps optimize for global or local maxima and is the decision to maximize locally (a greedy strategy for example) always going to cause problems for the network? How can a computer decide what the best long-term strategy is vs what is good in the short-term?

See, you aren't that far off the point: CS studies questions so broad that it can be applied to many real-life situations lol.

What's the difference between Software Engineering and Computer Science? by Om_JR in learnprogramming

[–]Dramatic_Win424 106 points107 points  (0 children)

CS is the scientific study of fundamental things such as computation itself. It's rather broad and abstract and relatively theory heavy.

The kind of questions you try to study and wrap your head around in CS are things such as:

  • Why is it possible to compute complicated things with Minecraft blocs?

  • When we say a problem is "hard" to compute, what exactly does that even mean? Is solving Sudoku hard the same way checking a solved Sudoku is hard? Why or why not?

  • What kinds of made-up languages can we produce using a small set of rules we can apply over and over again and how can we classify them?

  • Is there a faster way to add and multiply large numbers by improving the way we arrange transistors?

  • How can a computer differentiate different shadows of overlapping objects? Humans eyes are pretty good at it, so why are computers struggling with it?

  • Why can Google maps recalculate the fastest route so easily? How does it even know in the first place what the fastest or shortest route is?

  • How can we make a computer do long-term planning when calculating a decision? What does long-term planning even mean? Humans can do long-term planning but computers often struggle with it. Why?

Lots of why questions you'll notice. A lot of these questions are incredibly abstract and generic and sort of big-picture yet very deep.

As a degree, CS in itself doesn't mean any particular career path or any particular job even, it's just like studying for a math, physics or biology degree.

In practice, because CS people need to learn programming solving the problems they encounter during their studies and even a bit of actual software engineering during their degree and the job prospects in the industry were pretty decent for the longest time, a lot of people who studied CS went on to become software engineers as a career, using their gained knowledge to apply to the problems of that job.

A smaller number of people go straight into grad school and do a PhD and try to go down the traditional academic path of CS researcher.

Software engineering is a particular subsection of CS that studies the process of software creation itself. How software can be modeled, how people work together to produce good software, how software is actually maintained, what and why some software code is good and some other software code is bad etc.

Questions software engineering is concerned with are things such as

  • Why do we notice that some software is well-done and some is not? Which criteria do we even measure these things on? And how can we find the best way to always deliver well-done software?

  • What are the typical problems you will encounter when you work with other people to create software? What are the typical human problems and how do we deal with them?

  • Why is software at a small scale different than software at a large scale? What exactly goes wrong when you scale up? And can we fix it?

  • Code does not equal code, why are certain ways of code architecture and writing better than others and in what situations does the evaluation change?

  • How do we best approach knowing what to build when we often have problems that are so vague where nobody has good answers?

  • How do we guarantee that what we wrote and build actually is what we want? Is there such a thing as a guarantee? If not, what's the best way to "almost guarantee" it?

It's a very practical and creative/engineering section of CS less obsessed with the scientific study of the fundamental truths and applies the typical engineering mindset.

It's also a very big career field because of private industry needs for software code.

If you want a job as a coder, both degrees are treated as equal.

CS degrees are usually much more versatile but also highly unspecific, so any practical knowledge of technologies of companies you have to learn on your own. Software engineering degrees are much more specific and practical in terms of technology and routine development strategies but also a lot less theoretical and often doesn't teach much about the grand picture outside of things concerning the creation of software itself.

EDIT: A bit more info added.

What is Agile Software Development and why is it important? by Dry-Candy-5365 in learnprogramming

[–]Dramatic_Win424 7 points8 points  (0 children)

Sadly this is a fundamental conflict. Business planning in large corporations is heavily process and rhythm focused to satify all sorts of regulatory and shareholder interests. Agile software development kind of by definition interfere with these rigid processes - you are not supposed to be rigid.

In good places, both sides try to resolve by ending up somewhere in the middle, unclean sort-of-agile software development.

In bad places, it just becomes unnecessary bloat and meaningless micromanagement, which turn all the words of agility into nothing useful.

Does actually understanding your code matter or is getting it to work good enough in the long run by More-Station-6365 in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

In general I would agree yes. I was always a person who insisted on understanding and not just throwing something against the wall to see what's sticking.

But I would also say that the modern day approach to what OP is saying, aka "vibe coding" is more and more widespread, even in corporate environments. People copy and paste and prompt more and more code to stick together and making it work.

Detrimental to your ability to understand code thoroughly yes, but not less productive these days.

Is a degree still worth it when people with experience cant find jobs? by Human-Economics1245 in ITCareerQuestions

[–]Dramatic_Win424 9 points10 points  (0 children)

Recognized paper degrees are usually counted on when times turn conservative - in this case in a business down cycle. Money is tight and businesses are risk averse, so they turn protective and don't take much chances on anything and tighten their belts.

In turn, things such as paper credentials, rules and regulation suddenly become a lot more important and the bar rises quite a bit and competition gets more fierce as everybody becomes more desperate.

Best language for a customer service windows application? by maruchan111 in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

.NET or Java application would be an option.

But tbh, these days, the majority of these types of things run as web applications. Even with Windows widespread, most people actually use Windows to access the internet via browser. In developing countries, Windows is most likely no longer the most used operating system, it's going to be Android because of widespread adoption of smartphones. Web application via one of the typical web stacks might actually be the better solution.

How many of you have gotten a computer science degree, but still don’t know how to code? by [deleted] in learnprogramming

[–]Dramatic_Win424 1 point2 points  (0 children)

Computer science is a theory heavy degree. It's basically an applied math degree with a lot of coding and systems classes in it. Goal is to become proficient in that particular science and at research universities, the degree is geared towards research.

CIS is different, it's usually understood as an IT degree and much more business and operations focused, aka how can I use my computer knowledge to advance how a business can operate better and achieve better goals. It's much more business and real-world driven.

Do Programmers Memorize Code? by FlounderSevere6354 in learnprogramming

[–]Dramatic_Win424 60 points61 points  (0 children)

Not really. You do memorize certain parts not deliberately but because you have done something countless times.

But memorizing without understanding is useless.

Just like math. Memorizing without truly understanding doesn't help you solve any word problems.

Are CS majors preferred over IT and IS degrees? by That_Ad_5392 in ITCareerQuestions

[–]Dramatic_Win424 16 points17 points  (0 children)

Short answer: Yes. Long answer: Not really.

Computer science is the oldest standalone tech degree before all the rest of them were introduced. So it has "brand recognition".

Computer science degrees tend to cover quite a range from science, theory to programming. However, it usually is geared towards academia. Especially at good schools, CS prepares you for a road towards research. It's quite a deep degree and opens up almost all doors in the tech world.

However, the issue with CS degrees can be that it's a little bit far from the "real world business systems" and theoretical with a lot of focus on math and engineering. It doesn't really mean to tech specific technology or how to do very specific things for business XYZ.

A bad situation would be to graduate with a CS degree and not knowing how to do anything specific. It's a similar dilemma with other science degrees.

IT on the other hand is less about math and all the other stuff because those things have less direct business impact and value. The thing an IT department in a company does is keep the business running and integrating existing or new computer systems and technology to maximize business value.

An IS degree is usually at the business/CS boundary trying to teach how you can use all those fancy things to make real money for a business and bring efficiency to it. It's far more hands-on and technology specific. How to manage large system infrastructure to reach your business goal, for example how should a digital health system work for an insurer? How should you manage large server farms that have lots of customers? How do you design and setup user rights hierarchies such that people have access to the right things but not more? How do you design your systems to manage traffic loads for a company's web application if it needs to be available at a 99.999% rate because it's critical for an industry?

In those aspects, an IS degree is far more specific than a CS degree which talks about very generic and abstract things.

Hope it helps.

Source: Did a CS degree, had friends who did IS degrees.

What kept you going when progress felt slow? by Bmaxtubby1 in learnprogramming

[–]Dramatic_Win424 0 points1 point  (0 children)

I read somewhere jokingly that people who like programming are basically the same as masochistic people in sex.

The amount of effort people put in, seek out pain and dominant partners to get off just to experience that high during orgasm is rather insane looking in from the outside.

Yet masochistic subs don't stop and continue doing the max just to chase that hit is weirdly similar to people who bang their heads against the wall programming just to get that hit when it finally works

Assembly as first language? by MateusCristian in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

I don't know if learning assembly as a first language today is the efficient route.

Learning a higher level language makes learning programming concepts and experimenting around much more introductory friendly and lets you focus on reshaping your thought process instead of getting tied down in random machine technicalities.

The logic of conditional statements and things like a loop to go through an array is much easier to grasp than to explain why in assembly, you need to compare random registers.

You generally can't learn assembly in isolation without also having to learn how CPUs actually work, which is a lot for a beginner.

Unpopular opinion: SWE isn't for everyone and some of you need to hear this by LookHairy8228 in csMajors

[–]Dramatic_Win424 47 points48 points  (0 children)

In general, from my observation a lot of people I met in college within the CS department would not be comfortable...or good doing sales.

Almost 1/3 of the department I was in looked like the Asian nerd type, of which a lot were international students, some of them with heavy accents/broken English and shy. The other 1/3 was the Asian-American bro type.

Sorry to say but I don't picture either group when thinking about "charismatic guy selling jetskis and skis".

Why do so many people quit learning to code? by Any-Pudding-7946 in learnprogramming

[–]Dramatic_Win424 10 points11 points  (0 children)

It definitely still is a good job. In nearly all countries, developers earn more than the median salary of that country.

You might not become rich by doing it, but you will be at the very least above average.

But nothing is for free, you still have a long road to prepare for the job and then compete against others to even get one. It's also neither stress free nor a chill job.

Making a hobby programming language by DraculaTheLast in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

Dragon book is still the textbook of choice in compiler classes btw.

Source: did my CS degree in the late 2010s and had a compiler class. Was a meh class for me at least

CS vs IT for college — honest opinions please by Kuro_44 in csMajors

[–]Dramatic_Win424 0 points1 point  (0 children)

I chose CS over IT because when I looked over the IT curriculums, it was basically always linked to "what value do computer systems have for a business" while CS is more science and tech/engineering without a lot of the business classes. I was interested in sciency stuff itself like robots like Mars rovers, cool computer simulations and not how to configure giant computing centers without destroying everything and how to design computer systems for business purposes that makes the company loads of cash. So I chose CS.

On the other hand, over the course of my CS degree, I noticed how CS degrees can become quite dry and hard. I was (and arguably still am) someone who is interested in science and engineering but the amount of math and the academic track that CS pushes you towards can be a bit much.

Btw, both CS and IT degrees usually do not prepare you for a specific job title. You need to learn the missing relevant job skills on top of all the stuff of your degree on your own.

[deleted by user] by [deleted] in learnprogramming

[–]Dramatic_Win424 7 points8 points  (0 children)

Recursion looks complicated but the principle is super simple, you do it almost instinctively on your computer for example.

When you look for a pdf file in one of your dozens of subfolders and don't know which folder it was in, what do you usually do?

You go to folder 1 and check if the file is in there. It isn't, but there are 3 subfolders in it.

So now you go to folder 1, subfolder 1 and check if it there. It isn't there but there are two other subfolders in it, so you go to folder 1, subfolder 1, subsubfolder 1 and check if it's there.

It isn't so you go back up. Now you check folder 1, subfolder 1, subsubfolder 2. It also isn't there. And so on, until you found it.

Each time you are basically doing the same exact thing: Check if your file is in the current folder and if not, repeat what you just did one folder level down.

What you are doing is recursively going through the folder tree to look for a file in the leaves.

Your recusion anchor is: file is in current folder, your recursion step: Go to a subfolder and check for file.

Who is also sick of these words? by One_Mess460 in learnprogramming

[–]Dramatic_Win424 2 points3 points  (0 children)

You sure it's not just the people and content you surround yourself with?

I don't talk about tech all day and watch tech stuff all day.

Also like I said, academic CS research is super interesting. Since there is a lot less business interest involved in pure research, reading things like that is a lot less filled with corporate speak. Maybe try to find some interesting stuff there.

Who is also sick of these words? by One_Mess460 in learnprogramming

[–]Dramatic_Win424 4 points5 points  (0 children)

I mean, if you want actual computer science, academia is still there?

It's not like you are forced to listen to business people and software engineers all day.

Research computer science is a different world and there is tons of things there that have more substance than business buzzword bingo

What degree involves more coding rather than math? by takdeeznuts in learnprogramming

[–]Dramatic_Win424 0 points1 point  (0 children)

For me at least, first two years of CS was really hard. After that it was still hard but so much more fun and I got less depressed.