Live data from Hacker News

Teach Yourself Computer Science

teachyourselfcs.com

221–230 of 273 posts

Re: Teach Yourself Computer Science

#221

Earlier quoted context omitted.

I got an interview that involved part 2 (substring search), which I solved using KMP.

It sounds like you got hazed. I still don’t understand why these software interviews do this. Especially when the work in question, is derivative, and mostly just reformulating other ideas and libraries. It’s like, how often are you going to have to reinvent your own Red Black Binary Search Tree to solve some obscure business problem? Most of the time, the business doesn’t give a damn. Just throw your data into a dat…

I prefer these interviews rather than take-home projects, which usually take longer and can be cheated.

A company once sent me a really long take home exercise that took like 3 full days to implement to completion. I said: no thanks, and in the same 3 days I had multiple interviews and even got an offer.

Re: Teach Yourself Computer Science

#222

As a 30 year old software developer who's now considering going back to school for the next 3-4 years to get a degree, I wonder if I should blame these kinds of resources for making me believe that I could learn everything on my own and that a degree was unnecessary. Having learned this material in school would have made my life so much easier... For context, I recently received a lot of pressure to get a degree, des…

Georgia Tech has an online MS in CS or Cybersecurity. The CS degree is a little cheaper, classes are roughly $650 each, cyber are around $900. You're looking at around $7k or $12k for the entire degree. I'm currently in the Cybersecurity program if you have any questions.

https://omscs.gatech.edu/ https://pe.gatech.edu/degrees/cybersecurity

Another option is NYU's Cyberfellow's MS for cybersecurity. It's around $16k https://engineering.nyu.edu/academics/programs/cybersecurity...

Re: Teach Yourself Computer Science

#223
post #32

Has anyone here learned a subject by going through one of these "teach yourself" lists? I've learned most of what I know about computers on my own, but it wasn't from following a list of textbooks. And when I've tried to follow a course like this for other subjects, despite my initial interest, I've found myself unable to make it through more than a couple chapters of the first textbook before running out of steam. B…

I learned networking through reading the book recommended in this website, and playing around with wireshark along with some other stuff. The book itself was about 800 pages, but breaking it down by sections made the task much more manageable

Re: Teach Yourself Computer Science

#224
post #198
post #4

Earlier quoted context omitted.

not op, but i think it's good enough to warrant reposts so new people can find it.

As grzm and brudgers pointed out, the goal of such comments is simply to point curious readers to related threads they may find interesting. If there were a problem with the repost we'd mark it a dupe instead. Reposts are fine on HN after a year or so, or if a story hasn't had significant attention yet. This is in the FAQ: https://news.ycombinator.com/item?id=23150065 . I've been looking for a brief, unambiguous phra…

Hmm, "see also" strikes me as pretty unambiguous phrasing.

I wonder if the problem is that when people are skimming, they're going to to miss a pair of short words in favor of the larger URLs (and by "larger" I mean the physical space the text occupies on screen). A bunch of links to the same post will always seem damning if you don't know better.

Re: Teach Yourself Computer Science

#225
post #182

I feel like the hardest part of modern software engineering is systems architecture. I've pretty easily picked up everything on this list that I've touched, but I still don't know how to organize systems . Is this just me? (if not, then I feel that this site misses the most important part of the discipline)

Because that is the the part of software engineering which needs the most experience and general knowledge. There is no way around it. After all you need to know the constraints around a system before even building it and that is only possible if you have seen it before. It can help to study others people work before starting a project in a similar domain.

These types of problems, ones which can only know how to solve by solving them, are known as wicked problems. Software design is well known to be a wicked problem.

Re: Teach Yourself Computer Science

#226
post #184
post #182

I feel like the hardest part of modern software engineering is systems architecture. I've pretty easily picked up everything on this list that I've touched, but I still don't know how to organize systems . Is this just me? (if not, then I feel that this site misses the most important part of the discipline)

After my first prototype(s) of system I start reviewing design patterns with goal to identify how my prototype(s) are similar to various design patterns, then I start looking at opensource projects with similar design patterns, eventually I see the righteous path.

This is my approach. Except three days later I suddenly realize a cleaner approach and I wonder why my original plan was so ugly.

Re: Teach Yourself Computer Science

#227

Earlier quoted context omitted.

Then would you provide any actionable advice? I understand your concern about not gaining implicit knowledge while surrounded by peers, but I’ve gained “the ability to think” through my other course of study, and your concerns don’t seem to be attached to a solution. Rather, it seems like a desperate attempt to gatekeep over an increasingly egalitarian field. And sorry, but there isn’t much communication to be learne…

Don't look for a FAANG job? There are plenty of enterprise IT jobs where the primary skill is putting together a web app to look like some designer's Photoshop, with pay 3-4x the median US. " Once I get through hiring season, I’ll worry about covering the remaining material before I begin work. " Someone who has spent the time wading through this stuff might consider that somewhat insulting. Your future co-workers, s…

> Someone who has spent the time wading through this stuff might consider that somewhat insulting

ok? If I have an entry-level offer in-hand 6 months from now and I’m behind a few textbooks, I think I can manage. Sorry to break it to you, but a lot can be done if you’re healthy and avoid distractions.

Re: Teach Yourself Computer Science

#228
as someone with a degree in CS, they're subject matters out there like logic, philosophy, algebra & writing. that will definitely help you out in CS. because first and foremost you need to be good at abstract thinking, then cs will click. and once abstract concepts click, you'll see the nonsense that the current software engineering industry is.

Re: Teach Yourself Computer Science

#229
post #218

Earlier quoted context omitted.

Having an actually solid foundation when you're being paid 300K to be expert isn't "enlightenment". It's "appropriately qualified". Hacking the hiring process has a good effort vs reward ratio, but it's also high risk. The risk is that obvious gaps in the candidate's background surface after starting the position. Which usually doesn't turn out well: best case career stagnates and worst case the candidate ends up on…

If you're ever offered a 1M job, you accept it and figure out the risks later. It's much better to fail after collecting 1M, than grunting for 10 years thru a risk free 100K job. I remember a similar conversation with a CTO of some cheap company that wanted to offer me 100K and arguing that he knew many risk takers who took on high paying jobs in bigger firms and failed. That was many years ago. Now my comp is approa…

thank you. My risk profile is also higher than most. Do you mind sharing your story? I’m an undergrad looking to sell my youth. Would like to work at a non-profit once I can be financially independent with my family.

Re: Teach Yourself Computer Science

#230
post #180

One thing I'm always amazed by when casually talking to people about what I do is how they don't think they can do it. Many people think that software engineering and programming are some inscrutable thing. Sometimes I try to tell them that it is nothing special, it doesn't take a mega genius or math expert to do it. That the most important skill is just being able to solve real problems, soft skills and breaking pro…

> the most important skill is just being able to solve real problems, soft skills and breaking problems into parts. As well as the ability to self learn and research. Seeing a very non-technical friend of mine being completely immersed in games like "Factorio" and "Satisfactory" where the entire game is essentially just putting constantly more complex and valuable resources together in automated ways is fascinating t…

I've played Factorio in the past and am playing Satisfactorio right now. I generally don't code at home or have any side projects.

Let's do some introspection as to why I prefer playing these games over coding at work:

1. Games are designed in a way, that speaks to intrinsic human values. For instance, in Factorio, the local Fauna wants to kill me. I have to build and design my base accordingly or will I'll perish. My work in contrast, is far removed from intrinsic human values.

2. Games are designed to be accessible, with every step yielding rewards right away.

2.1. Coding in an enterprise environment is full of complex task, which have to be broken down first.

2.2. Games such as Factorio increase complexity of task later on, but you always utilize mechanics you've already mastered.

2.3. Task in enterprise environments tend to always require learning new knowledge first (business domain, existing code base etc.) before being able to solve it.

2.4. Games allow me to start from scratch. Existing code bases, which I didn't build myself, require me to invest quit some time before I can even start achieving my task.

2.5. Often, these existing code bases require me to learn new frameworks. Games teach new skills/tools in seconds or minutes. Frameworks tend to require hours or days to digest.

3. Games provide visual feedback. My labor results in visible feedback inside the (virtual) world. Accomplishing a coding task tends to not result in any feedback (I do mostly backend). If there is feedback, it's normally in text form and of negative format (error logs).

4. In general, feedback in games is unambiguous, clearly tells you what is happening. No debugging. No frustration.

When I actually know everything that is required to solve a task and can concentrate on achieving the task in the best way, that's the moment I'm having fun. But normally, there is so much I don't know, tools I can use but have not mastered, that it feels like a mess. Even if you believe you have everything, reality tends throw some roadblocks along the way.

Now, why don't I code at home and do side projects?

That's in my first point. There is just nothing I could use coding for that solves problems I care about (intrinsic human goals). Even if I know how to write the next Facebook, I wouldn't do it because I really don't care. Well, there are some code solvable things I consider interesting, but they are out of scope in terms of my resources and abilities. Also, the way along would properly still suck for the most part, once it gets serious.

Right now, I'm learning some Math in my free time. Quit enjoyable, gives me new insights in how everything works. I tend not to have that feeling why learning new frameworks / programming languages. New insights are pleasurable to me, tech stuff just doesn't tell me anything interesting about the world.

Maybe some of you who don't feel the same can understand people like me a bit better (not saying that all non side project people have the same reasons).

Post reply on HN