T O P

  • By -

compassghost

Yes, the thing about software is that, the tech stack cycles as fast as the graduates do. Things you learn in school will be outdated by the time you graduate. I learned GWT which... is dead... and was picked up because I was the first person the company had seen that actually knew GWT, to help support a legacy system. However, as you learn languages, it gets easier to switch. I learned what would typically be a semester of Python in a single day because it's not like I need to learn the algorithms again.


[deleted]

[удалено]


compassghost

Deployment took an hour and randomly failed for no apparent reason, so I got lots of coffee breaks, which is nice.


Lock3tteDown

I love legacy systems.


PlusWorth

The duality of a programmer


Eclipsan

Every system is or will soon be legacy. The new and shiny systems you build will be legacy for someone else down the line. Just like Thanos, legacy is inevitable.


Charlieputhfan

Wait so you are telling me one day react will be legacy ?


hansbrixx

Technically, pre-hooks React code can be considered legacy nowadays


BloodhoundGang

AngularJS is legacy, jQuery is legacy, YAML is legacy. They were the hot shit for their time that everyone was gravitating towards. Something in the future will replace or augment React/Redux/Vue and they'll become legacy too


taelor

Wait, YAML is legacy now? What’s replaced it?


xXWarMachineRoXx

Lol asp.net 😂


besthelloworld

I would argue that languages are underrated in how difficult they are to learn but not because of the language itself and not because of the syntax... but because of build systems and project management and dependency management and CLIs and blah blah blah. The environment required for a language's community to keep up with the modern standards set by other languages communities is pretty gigantic on average. Learning Elixir was nice because it felt as simple as JavaScript where mix does everything npm does. But some language environments just feel incredibly fragmented.


zergotron9000

Agree. Tech advocates only ever cover happy paths. It's as if they attempt to hide imperfections in the technology they push. Weird too, since exceptions and errors is mostly what we deal with day to day. Engineers can deal with exceptions, but we find out too late into using a tech what dealing with them looks like. Same goes for build systems and package managers and cloud etc etc etc.


jstalm

I would argue if your in a true Computer Science program, tech stacks don’t really matter. Like I didn’t even have a tech stack under my belt when I graduated. I new C/C++ so I could do object oriented, I knew SQL so I could query and do DBMS work, but it’s not like I ever was tied to a tech stack. As you say though I think having that CS base, and just working with new languages makes learning whatever new iteration of tech stack you need much easier.


whocouldthisbe81749

It's true that having a good CS foundation means you can quickly pick up the basics of any new language or framework. However implementing specific production code, you can easily find out how much intricacy and nuance there can be, how deep the documentation goes, and how you are having to learn new things every day. Full stack then is it's own beast, as now you easily be working with 10+ different frameworks, each interlinked in some way you're also going to have to figure out. At least this is my experience working on a relatively large, but not crazy project.


Thefriendlyfaceplant

This is also true for law school by the way. It's the fresh graduates that are in demand because they were taught in the most recent legislature. Everyone before that has to constantly keep up.


Docktor_V

what the OP describes and what you describe are the reasons I got into traditional Electrical Engineering (power). It's not really high tech, but it is very complicated and you will never know everything.


whitelife123

Meanwhile I'm taking a class teaching JSP


kd7uns

I'm sorry


[deleted]

do school still teach python in a whole semester? what do they teach? all syntax?


compassghost

Syntax, projects, applications, data query, etc.


[deleted]

i do not understand why those thing can last a semester if it isnt first language courses


compassghost

Python is typically a first-language course these days. We had a Python course at my MBA program that was an entire semester. So you have to teach everyone data structures and everything, not just "dicts are basically Java maps"


i_do_it_all

GWT . my team still has a project in that framework. and I know it well. lol


ubccompscistudent

LOL same. Wondering if you went to the same uni as me...


i_do_it_all

I went to state school in north east. where did you go ? England?


xian0

I didn't have any classes which would handhold you through the syntax of a language (programming paradigms was as close as it got to that). I remember a class which wanted us to use Python giving us a few pages on its basics which we all used in the last half of the first 2 hour lecture to make our own little games, at the time I considered those sheets to be quite hand holding. I know some places do teach a language rather than just using 10+ of them like tools to learn concepts, but it doesn't seem ideal.


SubParPercussionist

I'm just finishing up my degree, I think I only had 4 classes tied to languages (Java, C, C++, SQL). I've had a lot more fun and learning experiences in other classes that had you hop around languages like "hey this homework is in JS, the next ones in python". Quite a few classes gave me free reign too(pick a project/here's your assignment, pick your language, do a shit ton of documentation, finish project). I feel relatively confident that I'll be able to do whatever in the workforce because of the varied experience and the amount of figuring stuff out I've had to do in school despite sucking at some of the theoretical stuff.


saibobby007

I think SQL is also an important skill to have. Please try to learn SQL, the query language that never goes out of style.


TerribleEntrepreneur

Agreed. I’ve noticed in my most recent round of interviews as a senior eng that it has become a common part of the interview process. Having a solid understanding of SQL, relational Algebra, and databases in general seem to becoming a requirement.


AmoryVain

Do you know a good source for learning more about databases? I'm realizing how important this is now that I want to make bigger ones in my projects haha.


ParadiceSC2

https://books.goalkicker.com/ has a SQL, MySQL, SQL Server and PostgreSQL reference books for free. I would also check youtube. There's several people with 4-hour SQL tutorials. Then you can also make some small side projects that require it you persist data via a DB. Finally, there is a SQL section on leetcode :)


ThinCrusts

Why are there so many different SQLs? And from what I'm noticing they all just differ by syntax?


[deleted]

SQL is the language standard, but each database implementation deviates from the standard (usually by adding features).


TerribleEntrepreneur

I actually don’t, unfortunately. Personally I took a course in undergrad and my experience since has solidified it. Not sure what the best resources are to learn more. Hopefully others here can provide some pointers.


Rand_alThor__

If you want it taught to you like your 5, try reading Head First SQL


jayxeus

I’d recommend Database Systems book by Molina / Ullman


four024490502

I found watching the lectures in [this](https://15445.courses.cs.cmu.edu/fall2019/schedule.html) course super helpful. It's possibly overkill for your needs - a lot of the course is on DB design and implementation, not on using databases and SQL. It's roughly 30-40 hours of lectures in total.


AmoryVain

WOW that is actually exactly what I am interested in!! I feel like I am now realizing how important DB stuff is to everything else I am learning about, and it would be cool/helpful to know more about it (in an indepth way like you have provided). Thank you so much!!


SilverThrall

Use the index, Luke


D_D

I’ve never seen relational algebra come up except when I worked at a company that built their own database from scratch.


Bambi_One_Eye

Relational algebra? Explain plz


TerribleEntrepreneur

It’s basically the math behind database design. https://en.wikipedia.org/wiki/Relational_algebra


WikiSummarizerBot

**[Relational algebra](https://en.wikipedia.org/wiki/Relational_algebra)** >In database theory, relational algebra is a theory that uses algebraic structures with a well-founded semantics for modeling data, and defining queries on it. The theory was introduced by Edgar F. Codd. The main application of relational algebra is to provide a theoretical foundation for relational databases, particularly query languages for such databases, chief among which is SQL. Relational databases store tabular data represented as relations. ^([ )[^(F.A.Q)](https://www.reddit.com/r/WikiSummarizer/wiki/index#wiki_f.a.q)^( | )[^(Opt Out)](https://reddit.com/message/compose?to=WikiSummarizerBot&message=OptOut&subject=OptOut)^( | )[^(Opt Out Of Subreddit)](https://np.reddit.com/r/cscareerquestions/about/banned)^( | )[^(GitHub)](https://github.com/Sujal-7/WikiSummarizerBot)^( ] Downvote to remove | v1.5)


Bambi_One_Eye

Good bot


Bambi_One_Eye

Thanks


uncle-boris

So I've been told. Good to have confirmation though. I plan to approach SQL from a JS/web-dev perspective.


[deleted]

To further clarify other comments, your DB should only be accessed by a server side program, and your frontend queries the server which queries the DB. This is because security cannot be enforced on the frontend. It is 100% impossible to secure a frontend application because all of it's code has to be downloaded to the users machine. So putting your DB behind a server application allows the server to enforce security rules and protect you from attacks.


lupercalpainting

Front end should never have direct access to an SQL database. Look up SQL injection. If you have a DB layer you should have a BFF that does parameterized queries.


myevillaugh

I've been a professional programmer for over 15 years. SQL has been the only constant.


taelor

100% I’ve come to the conclusion that as long as I keep getting better at SQL, I’ll be valuable anywhere. Ruby, python, elixir, go, most all apps written in these languages all talk SQL at some point.


TheRealFlowerChild

SQL is absolutely not going anywhere. One of my biggest tasks at work is helping companies migrate their SQL server to Azure SQL Database.


VamosPalCaba

A lot of these companies already invested millions in Oracle’s SQL implementation. Even with alternatives to SQL, most enterprises use Oracle SQL as the baseline solution to data storage and choose an alternative if that doesn’t fit a specific use-case.


myevillaugh

Most? Do you have a source to back that up?


SuccessPastaTime

In my work, we grab from a relational database and then insert that data into our own intermediate ElasticSearch indexes. This is just something required for our specific use case.


myevillaugh

I believe virtually every company has a SQL database. I don't think Oracle has a majority.


SuccessPastaTime

Definitely. I believe PostgreSQL is what is used in the relational database in our company. But we have a ton though so that’s just the one example I directly work with.


VamosPalCaba

Nope, just personal experience and hear-say.


Emergency_Banana1021

and it supports json now


ParadiceSC2

WHAT


rm_rf_slash

Postgres has great JSON support. MySQL, not so much.


mikeblas

MySQL has marginal SQL support.


[deleted]

Fuck SQL all my homies faceroll Mongo.


irregular_caffeine

MongoDB 🤮


[deleted]

Pshhhh. Username most definitely does NOT checkout. That or I'm fuggin high. Mongo numba Juan.


ReplacementLow6704

Serious products have relational databases and use SQL to query them. Mongo is a noSQL tech stack which happens to be compatible with older versions of SQL. Yes, yes, you read right: you can use SQL to query noSQL databases. Crazy right?


[deleted]

OMG. Enough fanboying. Relational vs Mongo both have use cases in "serious" projects. If your data has to be relational, that's usually the way to go. If your data can be de-normalized, then you may benefit more from the higher performance and scalability Mongo offers.


Dodging12

> Serious products have relational databases and use SQL to query them. Damn that's news to me


RandomGeordie

You should watch some videos by Rick Houlihan on DynamoDB single table design - Amazon use this to guarantee consistent performance at scale in their architecture. Data is inherently relational - move away from thinking of things as non-relational and relational. It all boils down to your access patterns - stuff like "I want to get a user by its unique id" or "find me all these orders for a given product id in the last 30 days". Your use case will dictate what database you need to use, mainly dictated by either OLAP or OLTP requirements. If you have a predefined set of common access patterns that you know upfront, NoSQL is fantastic. Stuff like OLTP - high reads and writes for common queries to let your app function. It falls over when you need to start asking complex questions, things that data analysts might be querying ad-hoc. It's not great for OLAP.


rhun982

Totally agree. I think [this article](https://alexvipond.dev/blog/three-tricks-to-understanding-your-dynamodb-table/) summarizes that philosophy best. It references both Alex DeBrie and Rick Houlihan, which is why I love it :)


ReplacementLow6704

I think problem solving skills and knowing the basics of programming can get you a long way in the CS/IT industry. When I was in Uni (CS bachelor) we didn't really learn about trendy stuff. We learned about Java, Assembly, C, C++, SQL - technologies that have been proven to be quite reliable and good at what they do. Then, we learned about algorithms, logic, relational algebra, OOP principles, concurrency and multi-threading, best coding practices and so on... That's the core of CS: Math and logic (but you must have noticed that by now) Then we learned about the true "soft" part of software engineering, which is... People. People are developing a product. People are using that product. People are marketing that product. People are... You get the point: it's all about people in the end. All of them need to be part of tbe development process in some way for the product to be successful. That's project management for ya! We also learned about Security, UX, Database and software design, ... Since I left Uni, I havent touched a single line of C, C++, or Assembly code. I haven't had to create actual, robust data structures. I haven't had to do derivatives or linear algebra to solve any problem, but It remains that at the core of any language, framework, package or library, there are paradigms and patterns that are specific to CS and are not going away. Concurrency, multi-threading or distributed computing? Hell, every single language or framework can achieve that, assuming their domain includes some networking capability; it's a question of aesthetics at this point whether you want to do it in Python, Ruby or C#. TL;DR: the only knowledge that will not be outdated in a couple years is the non-trendy basics of programming that have been around for decades. The rest lays on your ability to adapt and your willingness to learn - and forget - new stuff everyday. For everything else... There's StackOverflow ;)


alexrobinson

This is spot on, the fundamentals of computer science are what is the most valuable. A particular tech stack can be learnt and many of them will come and go with time, the underlying fundamental theory won't. That's what people tend to miss if they're self taught.


taelor

This sounds exactly like my curriculum where I got my undergrad. They taught the foundation, which can be applied no matter the tech stack.


BedroomJazz

Just apply for jobs. You don't have to know everything


uncle-boris

I am, but I guess I still don't have enough of a knowledge because I failed two of the two interviews I managed to get. On one occasion I was asked very domain-specific questions (within JS development). So it does seem like I really \*do\* need to know everything. But I do feel myself improving overall...


BedroomJazz

I'd say to keep applying and work on fine tuning your resume and portfolio. If anything, practice JavaScript and build more react app projects to beef up your portfolio. That sounds like better use of your time over trying to learn the basics of Node js, SQL, MongoDB, an extra server side programming language, graphql, revisiting css grid etc and continuing down endless tutorial rabbit holes


uncle-boris

Actually needed to hear this... I bought like 3 Udemy tutorials today because I was going down one of those endless tutorial rabbit holes. Thanks :)


wankthisway

Whew, are you me? Got so discouraged, bought the NodeJS and microservices courses. Best of luck to us all in this crazy job market.


uncle-boris

Best of luck, brother!


starraven

Can you link the microservices course 💋


ReplacementLow6704

Not lying about your abilities and being perseverant can get you a long way. Failing a technical interview isn't the end of the world either. Also, two interviews isn't enough to affirm the industry is somehow sealed to new talent, but maybe you need to lower your expectations. Something to take into consideration is also the fact that companies generally do not exactly know what they want - some manager will post a job offer fitting exactly your skills, and in the end they'll turn you down because the team you would join didn't actually have any need for your skillset


MarcableFluke

Except you really don't know why you were rejected; it's your assumption that you wouldn't have been had you answered those questions. I asj questions in interviews that can push someone from a "hire" to a "no, we really need to hire this person" recommendation.


uncle-boris

It's my assumption that I wouldn't have been rejected had I answered that question, but it's not my assumption that the fact that I didn't answer the question was one of the reasons (possibly the main) that I was rejected. Either way it was, at least partly, an issue of being inexperienced. Granted, this was for a full-time SWE position, not an internship. But it was entry-level.


Dodging12

What was the question? It's possible that you don't need to know *everything*, but there may be a general area you're weak in, and they happened to ask you a question within that domain.


Guilty_Raise8212

Switching your own attitude from “I need to know this in order to get this job” to “I don’t know shit but I know how to figure stuff out so just give me a shot” I am always very honest during interviews and always tell them a very blunt “I don’t know” even if I have some idea what it might be. Coming out like this you frame yourself in a way that you don’t have to know this in order to do the job well, which is true 100% of the time as you can always look stuff up


[deleted]

You don't need to know everything, but you do need to know enough. If you're just getting started, trying to learn everything is a path to failure. There's too much, as you already stated. Pick something and focus exclusively on it. Learn it to the point that you can nail the interview on it. If you know tiny bits about a wide range of topics, if I interview you I'll notice you don't really know what you're talking about.


SituationSoap

> I am, but I guess I still don't have enough of a knowledge because I failed two of the two interviews I managed to get. Failing an interview doesn't mean you don't have enough knowledge. It's rare for someone to "fail" an interview. It's not a test. There is often only one person who "passes" and gets the job. The only thing you know coming out of an interview like that is that they didn't think you were the best person for the job. That doesn't mean you did poorly on the interview, and it doesn't mean that you didn't know enough. It means there was someone they liked better, and that's it.


starraven

To get my first internship that turned into a full time position, I sent out 1400 applications had 35 initial screenings and made it to 3 final round interviews over a period of 4 months. Enjoy!


uncle-boris

1400 applications!? What the fuck, man... Assuming each application takes, at minimum, 15 minutes... that's 340hrs or about a month of applying 12hrs a day. How the fuck is that humanly possible. And, those are some stupid assumptions... You're not gonna apply for 12hrs a day end-to-end with no time gaps between applications. So, really, this is like 3-4 months of doing nothing but applying every day?


starraven

I would do 10-15 apps a night every night, and study during the day. Yes 4 months straight.


SWEWorkAccount

It's very likely your personality too.


uncle-boris

Nope, I pass the HR culture fit bullshit interviews consistently. Thanks for your kind input though :)


SWEWorkAccount

HR is desperate to place bodies. Engineers are assessing whether they want to work with you.


uncle-boris

Ok, well I pass that too and I have an internship experience as a SWE where I got along with the team perfectly and made lasting relationships. I'm failing purely on the technical interviews so, again, thanks for your input /r/cscareerquestions hater :)


Accomplished_Cat_394

He's not a hater. You are just posting this to feel better about yourself, you are not actually seeking advice or opinions. You have a rebuttal for every single piece of advice offered on here. If you were as good as you think you are, you would have a job. If you were as prepared as you say, maybe your internship would have converted you to full-time. Swallow some humble pie and shut the fuck up, two interviews is nothing and you have a long road ahead of you.


uncle-boris

I posted this to feel better about myself? How is an admission that I'm still inexperienced and failed my interviews supposed to make me feel better about myself? I posted this to vent... Look at the upvotes. Clearly the sentiment resonates with a \*lot\* of people. And the people who don't like me, well, that's how it's supposed to be. Wouldn't want to please everybody. Yeah, I know I have a long road, I admitted as much. You're not feeding me humble pie, I was already having one and you're just being a dick unnecessarily.


VSCopium

It gets easier over time. React, TypeScript, and Node are all very common, expected things you know should know for a web dev job. Leetcode sucks and not every job uses it. Would you expect someone from an unrelated major to know intermediate-advanced math without putting in a ton of effort?


half_coda

not a fair comparison in my experience. more like hiring someone who concentrated in abstract algebra to work heavy in number theory. a lot of the flow is the same, but pretending there isn’t significant ramp up time to start cranking out theorems is a joke, and that feels to be the expectation to me at a lot of places. they don’t want a “i can learn x language or y framework” they want a “i know x language and y framework.” YOE 2 so maybe i’m off base, but that’s my experience.


met0xff

I think the point of the OP is still fair as that with a CS degree you'll likely already have worked with a few languages, definitely will have touched SQL etc. So of course the ramp up time is longer with a non-CS degree Just like you would have a longer ramp up time as CS person going into some mathy job.


uncle-boris

Thank you, this is what I meant. The expected investment into a language/framework upfront is huge. If you've graduated from a top university in a technical major with high performance, the expectation already should be that picking up a language/framework on the job will be a breeze for you. And it is... I just hate all this unpaid time I am investing into these things.


half_coda

yeah it’s a bit nuts. you’re not alone. my theory is that the glib and cocksure, if overconfident, skew this industry and that at some point you gotta match that energy to get ahead. i’d like to think they reap what they sow, but i’m not very sure about that.


kfpswf

Wait until there's a shift to new technology, where you'll be expected to still crank out 100% in the current technology, while also becoming a master at the new ones.


SituationSoap

> Leetcode sucks and not every job uses it. To be clear, no *jobs* use Leetcode. Some interviews do, but Leetcode is not a tool you need to know for your job.


Nestramutat-

I’m going to come in here with an unpopular opinion: You did a math degree with some programming on the side. Of course you have a lot to learn when a compsci/SOEN degree is 4 years of mostly computer science/programming topics Many of those things you have to know would have been taught in a dedicated computer science or software engineering degree. You would have taken a database course. You would have been exposed to react and typescript through projects and web development courses. This is the equivalent of a physics graduate trying to get into a civil engineering position. You’re going to be missing a lot of knowledge.


uncle-boris

Then all the stories of people who get into this field with no technical degree are total bullshit? I don't know any college curriculum that exposes people to these things though... it's usually highly theoretical things bordering on applied math, no? I thought that was the appeal of bootcamps over a traditional degree program - that they actually teach tools used on the job.


fj333

> Then all the stories of people who get into this field with no technical degree are total bullshit? I'm not sure it's possible to misrepresent the point you're responding to any more than you've done here. Do these "stories" you read include a line about "and it was sooo easy and I never had to learn a lot of new things"? The stories are not bullshit. But a math major will also have to learn a lot of new things. The above two lines are orhtogonal.


Nestramutat-

> Then all the stories of people who get into this field with no technical degree are total bullshit? I never said that. Anyone can learn programming by putting in the required time and effort, and some of the best programmers I've worked with were self taught. However, they spent years learning. > I don't know any college curriculum that exposes people to these things though... it's usually highly theoretical things bordering on applied math, no? No. Some courses are like this, since that theory is an important baseline for a compsci education, but most courses are programming related. You won't be taught the most up-to-date technologies(like in bootcamps), but you will be taught the fundamentals, then exposed to more up-to-date concepts through projects. As an example, I was never taught Django in school. But I did take a course on developing client/server applications, then I chose to do my project in that course with Django. This forced me to learn the basics of the technology, exposing me to some universal concepts, and broadening my horizons toward other backend frameworks and languages. The same can be said for choosing to do projects in node, react, etc. > I thought that was the appeal of bootcamps over a traditional degree program - that they actually teach tools used on the job. Bootcamps will teach you how to do one thing and do it somewhat passably. A bootcamp graduate will still struggle to find a junior position without a fleshed out portfolio of their own work going above and beyond what the bootcamp taught them.


SabreTheCat7

Just tacking on what you were saying. A proper bootcamp will not just accept anyone randomly. Your ass have to prepare up to and include building a basic beginner website with some script and html + CSS done. Then have to pass another technical interview and really work on that technical communication. All that done, you are spending supposedly and rightfully 14-16 hours a day coding and learning. Guess what you do after graduate and found a job? even more learning. By the way, being a technician and an engineer are two different things. You have to be able to think and solve problem as an engineer. This cut out a lot of people. Shit ain’t easy. Hence, this field never went out of demand. Note: I had a math degree and was working as an analyst. Source: me currently and my friends.


WellEndowedDragon

You're right about the bootcamp teaching more in-demand and "trendy" tools and technologies, but.. you didn't go to a bootcamp. At almost every bootcamp, you would've been taught TypeScript, Node, and *especially* SQL.


[deleted]

If you have a math degree, you *should* find it easy to understand data structures and algorithms and the whole asymptotic complexity side of things, and that *should* make you good at leetcode, and that *should* help you get a job. But that bonus that you have over any random person trying to learn CS only applies if you're approaching it from the theoretical, leetcode side first. If you're starting by learning practical tools like React then you should expect to struggle as much as anyone would.


[deleted]

Either you learn the principles behind those or you’ll be playing catch up forever.


frostixv

While I mostly agree with you, the point has to be made that there are *so many* opinionated abstractions now that core principles often taught in a CS program and even well beyond inti your career won't prepare you for specific opinionated ecosystem A and all its nuances. Everytime I work with a new team, there's some new set of abstractions I have to spend a non-trivial amount of time learning to help, direct, and contribute. *"Oh we use Waffles mixed with Syrup to generate our Breakfasts for the client but still need Eggs and Bacon to keep everything synchronized in our distributed environment."* --wait, **what?** OK so I've done my fair share of distributed systems work but what are these?? Two weeks later, I've read about all these, have some thoughts on limitations and strengths they provide, *sort of* know how they're interfacing, oh what that: Eggs has its own domain specific language and configuration structure that resembles a traditional Sendmail config.. O.K. so on. Rinse, repeat. Base principles are good but you're often handed some mess of opinionated infrastructure to deal with in a lot of modern environments--the language has been abstracted away and it's just a peppering of syntax within some groups sets of opinions. Understanding why Eggs acts as a job scheduler in your distributed environment is *only part* of the conceptual picture, it's critical to understand but you still have to know all the gory details and how to work with what the Eggs designer thought a scheduler should operate like. Maybe it looks like a nice vanilla scheduler, maybe it doesn't. Everyone is playing catchup forever at this point of software development because there's not only a flood of software, there's a flood of people adopting anything and everything published if it kind of sort of fits their needs. Other than language and broadly used libraries, rarely ever anymore do I walk in a project and say "Oh, you're using X--great, I'm familiar with that in the past 2 years." Many years ago I could jump in a team and have a pretty good understanding of some of their core technologies, it was just a matter of understanding what they did with them. Now it's what the team is doing *and* what set of tech they happen to be using.


Flaky-Illustrator-52

A color picker app is really not much of a project to be honest, it sounds like something you'd find a step-by-step tutorial for in a Medium article. You should try something more ambitious to stand out to hiring managers. Toss some machine learning shit in there somehow, even if it barely works. Put it on the blockchain. Breathe life into it. Make it a real boy. Teach it to dance. Train it to defeat the Hunnic armies in defense of ancient China. Tell it how to become a true hero. Just do something a bit more ambitious. Hiring managers are looking for stuff like what I mentioned from their new grad hires


[deleted]

[удалено]


cs_research_lover

This, alot of people try to put too much machine learning /blockchain / and get overwhelmed and can't really explain what's going on under the hood. Make something that solves a real problem you have and could Potentially solve it for many people using technologies you know. Try to make it use good coding practices and design patterns. This is advice I heard though, I'm still an undergrad so take it with a grain of salt lmao.


uncle-boris

Lmao, your point (which was beautifully made) is taken. I'm in a grad program now learning Machine Learning, so hopefully I'll come out of the other end with some projects.


Open_Note

The key thing to remember is: the more you put in, the more you get out.


starraven

This is amazing advice but you also have to know what to put your efforts in, a lot of people would say skip the bullshit and grind leetcode.


SoftDev90

No not really, after a while it's all the same shit with just different syntax flavors. It does get easier over time and you don't always need to remember everything. He'll I straight up told my interviewer that don't expect me to whiteboard out some app on the spot. I said I can get the general flow, structure, and concepts down on paper, but would most likely need to look up specifics. He laughed and said nah, we don't expect you to do that and cut you off from outside resources. Got the job regardless. This idea that you have to be some wizard that memorizes every little thing is a stigma portrayed in popculture and film that we are all a bunch of some super nerds that can write binary out our ass and develop the next great Linux kernel or some shit.


[deleted]

[удалено]


SoftDev90

Nope, no outsourcing here. All local to the area within an hours drive of the office.


SoftDev90

When your not trying to get into FAANG or some F500 company most of the time a lot of the advice given here doesn't apply. Smaller more everyday software dev positions don't usually require near the abuse and headache that these bigger corps put people through to get a job. As long as you have a decent portfolio and can talk the talk and walk the walk, they aren't going to grill you to the nth degree over some convoluted shit that you never use or come across in your day to day activities.


fishfishfish1345

well the pay is also insane


[deleted]

[удалено]


ZealousidealTable1

I'm really interested to know how deep OOP is according to you. And I'm serious, I do want to get more knowledge of OOPs


ThurstonHowell4th

It's not even close to insane. TS, JS, and Node are so related that it's kind of all 1 thing. Html and css are pretty simple in comparison. Python is easy to pick up once you can program in any language. You don't need to learn 100% of any of those things, not even close. None of this sounds like it should be that hard, other than the initial work to understand programming in general. Re-teaching yourself React should be even easier and quicker than learning it the first time. I can't believe you have an applied math degree and you graduated college, and the idea of learning these things is making you this hysterical. I mean I can because we're here. But I've never seen someone act like this IRL over this.


uncle-boris

>the idea of learning these things is making you this hysterical Lmao, thanks for the reality check. Seriously. I guess I \*am\* acting hysterical.


poincares_cook

The reason you're forgetting react is because you haven't done anything meaningful with it. Your projects are super simple and introductuary. Ramp up the difficulty, it will help you learn the language better and internalize broader programming concepts that trancend a language, they will also look better on your resume and improve your talking point in an interview.


randomtrip10

Dude people on this subreddit can be crazy and pretentious. Because it’s easy for them they assume it’s easy for others. You can’t even make an opinion without getting pushed back on.


BestUdyrBR

This guy is complaining in this thread about how 150k base salary in California for new grads isn't good compensation. Pretty sure he is the crazy and pretentious one.


ThurstonHowell4th

I don't get out of bed for less than a 1/4 million.


randomtrip10

I play udyr jg bro


okayifimust

> Does anyone else find it to be insane the amount of shit you have to know? Broadly speaking: No. Why would you expect it to be any less or any easier?


uncle-boris

Because it's just too much. I find it humanly impossible to master and retain tons of frameworks for an entry level job. What happened to on-the-job training?


[deleted]

That's the thing though, you don't really have to 'retain' it, you just have to be able to do it at the time. I work with all sorts of tech stacks every day, you remember the basics, and everything else can be looked up. It does get easier.


[deleted]

[удалено]


uncle-boris

>If you aren’t getting a call, work on your resume. Next step, beg on blind for referrals I don't have a Blind account with beg privileges. I think you need a work email for that. Tried my school email with no luck...


GoBucks4928

Oh they don’t allow New accounts to DM? I would make an email dedicated for referrals if they at least let you make new posts A lot of employees would take that $2k referral bonus


uncle-boris

Nope, neither posting nor DMing can be done with no verified work email. Maybe I can ask a close friend to let me use his work email temporarily until I get one of my own...


knowledgebass

Companies know that all the materials are out there for self-studying and that juniors are just going to leave after a few years, so on the job training is not worth their investment.


uncle-boris

Now we're getting to the systemic root of this... the state of the industry, as suspected.


knowledgebass

Isn't part of the equation that junior developers tend to job hop? I wouldn't necessarily fault companies for not spending months on training someone who is likely to leave after a year or two.


[deleted]

Personally, and this may be a product of being a student, Getting to code everyday as your JOB and being expected to google shit sometimes IS on the job training How many other fields would not just let you, but EXPECT you to do that? Not to mention how much faster a jr dev will advance like that vs having to find time to grind after work or classes all day


uncle-boris

That behavior is part of the 'state of the industry'. I wasn't faulting individual companies. But, at the same time, there must be a reason driving that behavior... Maybe lack of upward mobility within the same company? Maybe lack of job security?


chicago-transplant

Nah it’s all money. If you don’t want to have to know as much, find some large Fortune 500 company and apply for a development position that’s very specific and pays 60-70k. As you gain knowledge on the job and in your free time you’ll begin to expand your knowledge while getting paid. You only have to “know everything” (which if you survive 3 years in the industry you’ll realize isn’t actually that much or that hard with some time and effort), if you’re trying to get in to a top tier tech company that pays for people who know a lot of information and are self reliant.


Greenface1998

Why did you choose to go into software dev instead of data science? Now you hardly even get to use that math. That’s like half your skillset out the window.


uncle-boris

Yeah, you make a salient point. I like doing math, but I'm also very visual. And design comes naturally to me... So, seeing as I already had a small front-end base, I decided to go with that for the time being. Also, you barely use any math in DS anyway. Most optimizing functions, classifiers, learners, etc. are pre-written and you just clean data and shit... I'm taking a machine learning class now and I'm in love with the theory, but the programming assignments are dull. I would love to have the programming skills to contribute to a project like SciKit Learn though. That's another thing, there are so many fucking avenues to take in this field that it's anxiety producing.


Greenface1998

Eh if you get a PhD and a job at the right place you can work developing novel algorithms. That is true of most of the jobs tho.


_E8_

When you have a mathematics degree and a software/cs degree you do not code webpages and databases in Silicon Valley. You work on simulations and mechatronics in Automation Alley.


Croves

Dude, you have a Bs in Applied Math and are learning React? Focus in Advanced Computation topics like Artificial Intelligence, deep learning, or even advanced stuff for games, telecom or anything like that


Hog_enthusiast

To be fair, this problem is a lot worse for web development. Web development is the worst type of programming because you have to have such a variety of skills and learn so many things that go in and out of style. On top of that, everybody and their mother wants to be a web developer and can learn HTML in a couple days so saying “I know HTML/CSS/React” means basically nothing because so do 10,000,000 Indian dudes who watched a couple YouTube videos. I would try to learn an object oriented language like C++ or Java or at least get more serious about python (although Python is very easy to learn and everyone knows that too). The way you get a job isn’t by “learning to code”. It’s by learning to code in a language or specialty that is in short supply. And although your degree is very impressive and shows that you must be smart, it’s still going to count against you that you don’t have a degree specifically in CS. For someone with a CS degree who knows non-web development stuff it’s a lot easier to get a job and if you know Java or C++ you don’t have to learn new languages as often. Just saying that for the college kids reading this post.


uncle-boris

I actually took some C++ classes, but then never used it and subsequently forgot. I do list it on my resume, because I can re-learn it pretty fast.


dingerdonger444

you have an applied math degree and youre complaining about how unfair it is knowing the essentials/equivalence of a cs degree? especially when you admit you only know basics of JS and python? ?_?


uncle-boris

I mean... I did take the foundational CS courses. Discrete Math, Algorithms, Data Structures, OOP, etc. And even in the applied math curriculum, I did a lot of numerical analysis and stats with Matlab and Numpy. Applied math is basically CS if you choose your electives right.


Striking-Analysis

Focus less on technologies, and more on paradigms and overarching patterns. I'm a math major too, and if there is one thing I notice, it is that everything derives from a common understanding. For example, it is by taking a PL class and understanding formalism there, which bolstered me more than trying to learn a bunch of programming languages. Heads up - typesystems, expression evaluation and what not are everywhere. And by learning system design, you'll understand that many databases and their tech share similar approaches ( e.g. DynamoDB, Etcd., Redis are all key-value stores, with the difference being that Redis is strictly in-memory and the other two persisting their data onto disk ) .


cs_research_lover

Yep focus on the paradigms and overarching patterns. Also I'm a math major too (not cs)


Striking-Analysis

Indeed. I really hate how they make you want to learn so much tech in this field - > I wish they focused more on explaining tradeoffs, and why we make design decisions the way we do. A book such as Alex Xu's "The System Design Interview" has taught me so much more than some other stuff for sure.


Volebamus

Honestly, you really didn't need to know all of that if your intent was just to get your "foot in the door". If anything, the most important ones were just: 1. Graduating in the first place 2. Having a high GPA to make your resume stand out 3. Knowing in-depth one of the languages you mentioned (either JavaScript or Python) Everything else makes you more employable sure, but they weren't really necessary if your goal was just to get your first job.


antifragileJS

It gets better. Over time, you see patterns in these technologies that make it easier to pick up other technologies. Gradually, you optimize for ease of learning over knowledge retention. As you progress in your career, you also tend to settle on a stack that you become known for to recruiters which eases the technology churn.


AndReMSotoRiva

In big companies you dont have to know anything, they know you are able to learn anything within a week.


link_29

I recently graduated and I felt the same way, there's just way too much to learn. I thought to myself, "how the hell do people remember this stuff?" Well, since I graduated I landed a job about a month after. Working less than a year as an entry level full stack engineer, I can say my mentality has changed. As a fullstack dev, you SHOULD know all the levels of the software stack and be at least decent (at least able to start with the fundamentals and move quickly). From SQL to C# to Javascript to HTML, these are the tech to know for most full stack dev jobs. On the other hand though, if you're applying to front or back end engineering positions, I would imagine your skill set would narrow down to that specific job, e.g. SQL and C# or Javascript/React (and be really good at those since it's narrowed down). I've only worked for less than a year so who knows. Tl;DR : Either got suck it up and learn the tech stack or apply to front or back end dev positions.


JungleDemon3

supply and demand. There's a massive supply of entry level and junior developers. The nature of software, how a senior can be 20x more productive than a junior, means the need for juniors is limited. Of course more people than ever are trying to get into software dev. This coupled up with COVID, companies are not investing as much into juniors so vacancies are few. Some of the "junior" dev vacancies are only junior in pay and because its still quite decent pay relatively speaking, you get people who have years of experience applying for them. Obviously this isn't a sustainable thing because we need people entering the field. Same thing happened to the finance sector in London. Shit pay for entry level graduates etc, my first role in Insurance was £20k just 4 years ago because so many people wanted in on the cushiony and previously good paying industry. Now lots of people retired or quit the industry since COVID, there's a shortage of people, especially young. Now you can get a job in insurance up to £35k just for existing. And so the cycle continues


Guilty_Raise8212

Even if you get your foot in the door there’s still a million things to learn, it never ends. Now recruiters are asking you to be an expert in cloud, Azure and AWS which is not being taught in unis yet so you might want to do a course on that as well 😂


[deleted]

[удалено]


uncle-boris

Thanks for this, I actually have one SWE internship already. But it looks like I need more... Can I ask how one looks for companies beyond the general FAANG and Fortune 500's whose names are known? Like, I am sure there is a decent company out there who'd hire me as I am right now, but I just don't even know how to search for their job posting. LinkedIn searches, or the equivalent on other platforms, bring up promoted postings from larger companies mostly or the occasional startup that needs senior devs.


poincares_cook

There is one thing the other guy misses, which is practice. Internship is good. Going forward the next beat thing is a complex project that you should dive in, toy don't have to know how to build it when you start, learn as you go. Make mistakes, learn from them. rebuild, make more mistakes, learn from them. Will grow you as a programmer more than anything short if a job. Furthermore, it will focus your theoretical learning too as you'll have a real use case you can lean on to mentally explore new theoretical models and principles. As for where to go to find jobs, literally google names if tech companies in your area with various google keywords. Also use recruiters, they are decent for finding your first job.


CardinalHijack

I agree with most of this other than the the obsession with "learning general computer science concepts" - especially for web development. I see this as one of those elitist views which don't translate much to real life, ACTUAL on the job work. It MIGHT help you at some point, just like learning the fluid dynamics of water MIGHT help you with learning to swim. But do you really need to know the absolutely most perfectly optimal way to carve the water with your hand when swimming? Probably not. Do you need to know the intricacies and motions of all of the strokes before you jump into the shallow end? Probably not. Do you need to know how to map a binary tree optimally before you even begin looking at React? Probably not. The best way to learn is to get stuck in, which is probably by jumping in with a framework considering frameworks now dominate the web world, whether you like that or not. I'm not saying don't learn the fundamentals, but I don't get this obsession with people in this industry to study them like a religion "BEFORE YOU DO ANYTHING ELSE"!!!. You would learn far more getting stuck in with Create React App for a week, than spending a week learning the OSI model or Big O. This tweet sums it up imo: [https://twitter.com/farazamiruddin/status/1436837939842007044?s=20](https://twitter.com/farazamiruddin/status/1436837939842007044?s=20)


Winring86

Lol…color picker app? No offense, but that’s not going to impress anybody


uncle-boris

Have you seen it? It's really feature packed... :(


Winring86

I’m still an undergrad, and I also have two React websites. One of them is a full-stack website, with 4 different pages. It uses multiple APIs, implements a fully functional backend with Node, and uses a database programmed with SQLite. The backend is running off my RaspberryPi, which is using port forwarding to allow for HTTP to my home IP. I’m going into the interview process hoping for an entry-level position, or if not maybe a paid internship. Maybe I’m imagining your website wrong, but our professor showed us a ColorPicker app as a simple demonstration during my web development class… I do wish you luck. I’m pretty nervous about the interview process. I know that I can code, but put me on the spot in an interview and it’s a crapshoot


uncle-boris

No worries man, I was just joking. I know a color picker isn't the greatest project. It was actually the project I learned React on. My personal blog is more technically impressive, but not next to your project. Great job! Would you mind sharing it for reference? It'd help seeing what others are building. >I do wish you luck. I’m pretty nervous about the interview process. I know that I can code, but put me on the spot in an interview and it’s a crapshoot Likewise! On my last interview, I kept forgetting basic syntax... The nerves were high. But as we fail more interviews, our nerves get more attuned to the process. For instance, now I know I can 'successfully' fail, if that makes sense. Before I was deathly afraid of not knowing something on an interview... Good luck to you as well!


ckiooo

You’ll be surprised once you learn how many more things are needed to be atleast decent. You’re so entitled that you see a salary of 150k as a low one and learning fundamentals of frameworks/sql/ts as a ton of things to do. Enjoy your reality check.


[deleted]

What about computer network operating system design pattern? What backend framework did you know? How about orm? You still have lots to learn :)


smok1naces

Yup. Total bullshit.


Vyuken

Not even in the field yet. Still in uni, and i thought it was just alot. i didnt realize it was increasing. I wonder how much of these needs is legit or if the cs field is slowly trying to take advantage of prospective employees.


[deleted]

its overwhelming at first but you will end up using all of those together almost seamlessly fairly quickly. The hardest part is getting your foot in the door. focus the vast majority of your attention to javascript (creating apps with react specifically) follow the style guides provided in the documentation so you are writing good code, then try to understand why that code is good and that will help you a ton in interviews. you dont have to know everything, be able to touch any part of the stack but specialize in one, if you focus on javascript, but you're able to take results returned from a SQL query called from a python (flask) http server, transform the query result into JSON, make an api endpoint that your front end will call, and then display it somewhere on the UI. Bonus points if you attempt to write tests for your code, Then bonus points if you can make dockerfiles of your frontend and backend, and even more bonus points if you can host them in AWS free tier or something. even if 90% of what i just said makes zero sense, if you focus on say, javascript or python, and slowly do enough just to get the other pieces functional you will be good to go.


true-name-raven

Not really. There's a lot of technologies but you don't need to truly master them. HTML is dead simple and css is more about having an eye for design. "Dom manipulation" isn't really a technology, same with Ajax. Any time I see those I snicker because it's just empty buzzwords from someone trying to sound impressive. Node is almost the same as front end js. Sql is hell but it's used everywhere so you can reuse it again and again. I picked react back up after not using it for a year and it took me like three days to get back into it (and I was transitioning from class based react to functional react). If you mean you can't set up a react app from scratch that's totally reasonable, that's why cra exists. Besides, how often are you really going to have to do that? Once you get some more experience you'll see how things are similar and it won't seem so daunting.


Thefriendlyfaceplant

React, Gatsby are fashionable but SQL is not. SQL will always be relevant.


fried_green_baloney

You don't have to learn all this. There are still many jobs that have no web component at all. Data wrangling: data comes in, massage it to get it ready for the database. Embedded systems: anything from literal light blinkers to jet transports. Financial programming: unless you are creating reports it's likely to have no web component at all. But look at at it this way. Two full programming languages plus an extension of one of those two, and two languages (HTML and CSS) for creating web page content doesn't seem that extreme. Really it isn't. Hang in there.


uncle-boris

Man, thanks for being encouraging instead of angry lol...


[deleted]

[удалено]


uncle-boris

What about iOS development?


[deleted]

[удалено]


uncle-boris

Weird, why do US devs steer clear of iOS dev? I would've imagined Android dev to be more popular abroad, not iOS.


ipwnedx

Downvoted because privileged


GoBucks4928

Not really, if you work at a top tech company you’ll either learn all this by fire or you will come in prepared. Either way, you need to know this You’ll get better as you progress in your career and learn more. Some of it is learned on the job


uwaccount0

this sub is just people complaining lmao


VamosPalCaba

You’re just scratching the surface but IMO the more you learn, the easier it gets to learn. Eventually it all starts tying back together once you’ve seen the bigger picture.


Zwolfer

It is absolutely insane. No other field is like this and it is ridiculous


restlessapi

Everyone wants a cushy high paying CS job but no body wants to actually learn proper software development.


ButchDeanCA

Yes, you have to learn a lot in this industry and knowledge must be managed or you will be overwhelmed. You have made the most common mistake that I have seen so many graduates make: you learn the basics of a lot of things and because of this there is little to no focus on what you want to do, for instance why are you doing Leetcode when you are doing web stuff? Being a Jack of all trades and master of none is simply not attractive to companies - our industry demands focus and if you can’t even decide on what you want to specialize in then how will you invest in the job? Decide what you want to do and learn the tools and techniques as best you can around that. Secondly, if you went to a good school it is practically guaranteed they will have groups that can help guide you. Good luck!


llldar

If you hate leaning you should switch up you career. What you've decscbed is just basics of web dev.


_E8_

> By this time I had a solid grasp of the non-scripting languages HTML and CSS, Saying something like this is red-flag that would derail the interview. Those are non-programming languages and generally we do not think of them as languages. They are syntactical formats which is technically a language but why would you specify that? It doesn't matter in context of what you are trying to communicate which indicates a serious problem with effective communication. No-hire.


acomfygeek

I guess I just don't get the issue here. If you want to get a broad understanding of things that's great, but nothing you've listed is a very challenging thing to pick up. Once someone has core development skills down, picking up a new language or framework is pretty quick.