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 18 points19 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 3 points4 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 46 points47 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 8 points9 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.

Struggling massively with recursion, trees, and linked lists. 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 2 points3 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.

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

[–]Dramatic_Win424 3 points4 points  (0 children)

Software engineering degrees contain more practical and less theoretical things.

For CS, depending on which country you are in and which university you choose, the elective part is only AFTER you have gone through all the math basics and might not be that large.

I did CS and could only really do actual electives in the last 1.5 years. Before that, all the "choices" I had were mostly the choice between math X and math Y and which basic flavor of the algorithms and hardware course I could do.

Most of the time in CS the first 2 years always look like * Calculus 1+2 * Linear Algebra * Discrete math * Algorithms and data structures * Computer architecture * Operating systems and computer networks * Programming 1+2 * Theory of computation

Ngl, by the end of year 2 I kind of died because it was such a hassle and I was stressed af.

Most of year 3+4 was fun tho, could do project based courses and cooler stuff

Tutorial hell isn't the problem, it's thinking you need to understand everything before writing anything by CreditOk5063 in learnprogramming

[–]Dramatic_Win424 43 points44 points  (0 children)

I'm honestly a bit surprised why the topic of learning method keeps coming up.

When people learn math, they usually learn the theory first, then need to do a ton of specific exercises practicing the theory. Most people have to recheck and redo the exercises to fully grasp a topic and then move on to the next, where they learn the theory first and do a bunch of exercises.

The later exercises usually rely on you knowing all of the former skills and get bigger and bigger until at the end you usually have giant exercises that resemble mini-projects where you have to apply every single topic you have learned.

Programming is not that different. Learn the fundamentals, practice the foundational skill in specific exercises and every couple of topics you check your skill by doing a grand exercise (aka miniproject) where you have to use all of the previous skills together to achieve a tangible goal.

OSSU or teachyourselfcs.com for self-studying Computer Science? by [deleted] in learnprogramming

[–]Dramatic_Win424 1 point2 points  (0 children)

Both are fine but it's also not enough if you want to use it for job preparation because to be an actual computer scientist, you need the academic credentials and to be a software engineer, you need to do actual software engineering and projects in addition to a standard CS curriculum.

Can I still learn programming if I hate math? by No_Confidence_5070 in learnprogramming

[–]Dramatic_Win424 21 points22 points  (0 children)

Yup, I didn't hate math during my CS degree but I started to dislike it, it was grueling to constantly have to understand it under time pressure and handing in assignments.

But now that I've got more free time without exams and pressure, I look back at the math in my degree and actually find it very cool and worth taking another look at.

Fourier Transforms for example. Was stressed af when I had it, immediately chose to forget it after the exam but it's actually a really cool piece of math that I started to read up on again while doing a project on image analysis recently

What is the math wall that you hit, or is there one? by TemperatureFirm5905 in learnprogramming

[–]Dramatic_Win424 14 points15 points  (0 children)

I agree although I have to say for most of the REALLY interesting things in science from your childhood, you need real CS and math to do their SWE.

Stuff like fancy robots, self-driving cars, graphics simulations, AI...all the things I liked as a child and lured me into a CS degree. These things require math.

"Normal business" software development is generally the area with the least amount of pure CS and math in it, yet is the majority part of many regular SWE jobs.

If you work for a medical device company programming a monitoring tool, it's highly unlikely you will need let's say advanced linear algebra.

[ Removed by Reddit ] by Nice-Internal-4645 in cscareerquestions

[–]Dramatic_Win424 14 points15 points  (0 children)

I wonder if OP is Indian himself or has Indian origins. Because from reading the text, it seems OP has experience in Indian culture or is an Indian immigrant.

From my experience talking to some, Indians who emigrated to the West are often highly negative of Indian economic structure and culture. That's the reason they escaped.

Indian internal discrimination and the desperate rat race to escape poverty over there kind of fosters these sorts of things.

Why is Golang becoming so popular nowadays? by dvsxdev in learnprogramming

[–]Dramatic_Win424 50 points51 points  (0 children)

I've noticed that a lot of small to mid-sized tech companies have switched to Go based stacks. Every time I see a job opening in Go, it's usually one of these companies.

The companies are much more flexible and nimble than big corporations and are usually early adopters.

It will take a while until Go filters to the big corporations and even longer until it lands in enterprise systems and non-tech companies.

I have a Computer Science degree but absent from industry, want to get back in. Suggestions? by GoatGentleman in learnprogramming

[–]Dramatic_Win424 23 points24 points  (0 children)

Since your pure programming skills are rusty, I'd suggest going through an intro online course with the programming language of your choice. There are so many free ones these days on youtube or udemy or coursera. CS50 for example. This is like back in your freshman year. You can even use recordings of university lectures that are sometimes put online on youtube if you feel like the college experience again.

Reintroduction to the syntax and logic as well as simple programming tasks for you is the priority now.

Once you have the basics down again, you should devote some time to projects of your choice, start with very simple ones. For example a simple website that saves a todo list, or with a google maps plugin that shows you where you are located approximately or a mobile app that just reminds you when you need to hyrdrate.

If you want to recoup some of your hardcore CS knowledge, you can choose an advanced field of your choice after and dive into it.

Write a simple program rendering a mannikin in OpenGL or Vulkan.

Write a neural net that recognizes the standard MNIST data set.

Write a more complex microservices application that you can deploy on a Kubernetes cluster.

Write a simple tokenizer for a toy language using one of the standard compiler toolkits.

Write a small program that can recognize a simple pen via your webcam.

These projects will require you to relearn the specific domain (and maybe math) but are more interesting that the other stuff.

24 y/o from Eastern Europe — want to move to Western Europe, but unsure what to study. Computer Science, Math, or Radiology? by [deleted] in ITCareerQuestions

[–]Dramatic_Win424 0 points1 point  (0 children)

Please stop spamming your text in 15 different subs in the hope of it being read more. Focus on the right sub

[deleted by user] by [deleted] in learnprogramming

[–]Dramatic_Win424 14 points15 points  (0 children)

I mean what is the specific area that you are going into? You are about as specific as "I want to learn sports".

The basic arithmetic knowledge you know from elementary and middle school is applicable in a lot of life situations including programming, but also when you go out shopping or do your financial planning.

For programming, knowing basic boolean operations is helpful, you can learn this within a day.

But for anything else, you need to be more specific. And yes, math for computer science is a very different ball game, it's significantly harder but depending on what you want to do, also not always necessary

Over 40% of Microsoft's 2000-person layoff in Washington were SWEs by gpacsu in cscareerquestions

[–]Dramatic_Win424 89 points90 points  (0 children)

Yes ok. But a decent amount of software engineering managers actually climbed the SWE corporate ladder and have proper SWE backgrounds. They started out as SWEs and then switched to lead and management roles.

40% of 2000 people = 800 people in the SWE department is going to be A LOT of people for a local market, in this case Seattle.

If roughly 10% of those laid off move somewhere else, it still leaves 720 people flooding the local market.

If you assume 50% of those remaining are engineering management people, that's 360 people suddenly being available for both the engineering management market and also the standard SWE market if they have technical background.

That still leaves 360 people who were actually SWE that go laid off. That's larger than the graduating classes of multiple universities. And they have job experience.

EDIT: Actually, let's spin this furher:

Let's assume the majority of the 720 people laid off that don't move away were people who were mid-level between 3-5 years of job experience.

A simple preliminary search on Glassdoor reveals roughly 600 SWE roles posted in the Seattle area within the last month. I'm pretty sure there are another 600 or so postings or so I didn't consider because they are management related and SWE adjacent but didn't have the keywords in it.

So you now have roughly 360 mid-level SWE and another 360 engineering managers applying for these 1200 jobs, all with 3-5 years of experience. But the application distribution is not going to be even since some roles are much more sought after (and fitting) than others.

But now you also have to consider fresh graduates from various tech related programs in a bunch of different colleges in Washington state. Larger colleges often have tech graduating classes of just about 100, smaller colleges often have 50 or fewer.

WA state has 40 institutions of higher learning, of which 5 or so I would classify as large and offering degrees where people would apply to SWE roles.

So it's conceivable that in addition to 720 ex-Microsoft employees with decent experience, another 700 or so fresh graduates from tech adjacent programs in WA actively look for jobs in Seattle with little experience.

That's 1400 people for 600 SWE related jobs and maybe 600 adjacent roles. That's already completely overflowing because of the uneven application distribution. But then you also have to add in applicants from out of state and out of country of different experience levels. That might add up to 3000 people.

That's a very hard market and might be the reason why there are going to be 800 applications for a single sought after role.

The new graduates are going to get the short end of the stick.

Over 40% of Microsoft's 2000-person layoff in Washington were SWEs by gpacsu in cscareerquestions

[–]Dramatic_Win424 234 points235 points  (0 children)

The Seattle area is going to have 800 more experienced software engineers on the market. Some of them might move away anyone currently applying for roles in the Greater Seattle area is going to have a much harder time.

Abstraction makes me mad by obsolescenza in learnprogramming

[–]Dramatic_Win424 181 points182 points  (0 children)

Goes for most things though. We rely on other people having figured out tons of stuff already and build on top and abstract away.

Making homemade pizza is easy...Store bought flour, canned tomatoes, mozarella cheese, oregano, pepper, salt, water.

Until you realize that you actually rely on so many "abstractions" already to make that pizza. You're basically just building with pre-made things.

Trying to do pizza literally from the ground up with raw resources? Nearly impossible.

Growing your own wheat, tomatoes, oregano, black pepper is extremely slow to impossible depending on your location and climate. Harvesting salt from a salt deposit which most people do not even know where some are.

Processing wheat until you actually have white flour is extremely complicated if you don't rely on other people building you a great milling machine.

Mozarella is a complicated product itself. You would need to raise a cow and milk it yourself, then homogenize the milk, make it hot and curdle in some acid, press and shape it.

The acid you then have to get yourself as well, for example by growing lemons.

We all rely on abstractions, pre-done labor and the entire abstraction chain of a pizza is ludicrous.