T O P

  • By -

johnnyslick

Come up with an idea for a project on your own and build it yourself. It will probably be harrowing but that’s the point - through doing that, you’ll hopefully come to understand what being a programmer is. Googling stuff and trial and error is just fine as long as you can actually complete tasks. As you get in with a company they’ll also steer you towards doing things the right way - that is, making sure your solutions are elegant and easy to read. It’s honestly a way smaller deal than a lot of people make it out to be. Maybe you won’t be one of these “I grinded 200 hours of LeetCode” people but you really, really don’t need to be that to work as an enterprise dev.


AmatureProgrammer

I'm literally doing this but it feels like I'm building something that isn't concrete and just sticking stuff together and not doing thing the right way.


millenniumpianist

Just keep building stuff. Seriously. Don't worry about doing things the right way. Any time you start something new, you're gonna be in this phase where things are hazy and you're not clear on what you're doing. Keep at it and things will come into focus. This still happens to me when I start on a new system at my job that I'm unfamiliar with. You just work at it and eventually you'll find out somehow things make sense now.


[deleted]

I'd argue being a software dev is almost always being in that 'hazy' state. I just consider that state as 'the job' lol The only thing more important than knowing how to program, is knowing how to effectively self-learn.


Argon1822

I also think programming/IT is one of the few fields were people are “expected” to do stuff on their own time. Like if someone wanted to be a lawyer, teacher or an electrician I highly doubt there would be an expectation to be holding mock trials or coming up with lesson plans on your Saturdays you know what I mean 😂😂


deathbotly

As a teacher who had this pop up on the feed, yeah nah… lesson plans and marking outside of work hours is basically mandatory these days + unpaid volunteering for afterschool activities expected + admin meetings during work hours that mean all the marking and lesson planning gets done in unpaid overtime + expectation from parents/admin to answer e-mails around the clock, etc.


arosiejk

Many teachers work for free every day outside contract hours. It’s rare to be able to actually get through adequate planning or grading during prep periods. Some of us have lengthy legal documents to prepare for special education students too. Source: 9 year special education teacher, working on my CS endorsement.


[deleted]

> I'd argue being a software dev is almost always being in that 'hazy' state. I just consider that state as 'the job' lol > > The only thing more important than knowing how to program, is knowing how to effectively self-learn. And outside of lousiana, being a lawyer requires a degree. Even if you take the bar in other states (as far as I know, every state but lousiana) you cannot be a lawyer without forking the time and $ upfront for a law degree. Our industry requires nothing more than being able to do the job. As somebody who __despised__ institutionalized education, I will never stop being appreciative of the ability to make more than even my friends who are __actual__ (non-software) engineers based on competency and nothing else. You're right, it's a bit absurd to expect people to do stuff on their own time, but that's the price that is paid for a low barrier of entry. If you can't do the job, your degree is meaningless and you will be replaced by a fresh 20 year old who can, and vice versa. Personally, I'm only in this industry because this was stuff I was doing as a teenager anyway, and am always learning in my own time (although usually what I learn is not technology related) so this expectation doesn't bother me at all.


Mechakoopa

This is what I tell my juniors that come in lacking confidence: Getting a BSc in Computer Science and thinking that will make you a good software developer is like buying a workshop full of woodworking tools and thinking that makes you a good carpenter. You're probably going to be a bit better than someone without all the fancy tools, but you still need the knowledge and experience in how to use them correctly. That comes from a lot more study and working with experienced professionals. Graduating is just the beginning, there's a LOT more to learn.


MrAcurite

The way to do things the right way is to do them the wrong way so many times that you develop a taste and appreciation for why they're the wrong way to do things.


AmatureProgrammer

Thanks. Love your flair lol


johnnyslick

I mean, the fun of writing code is that no matter how slapdash it seems, if you write something that you drop X into and it brings back Y, you don't have to worry about it again (unless you have to change X or Y). That applies to pretty much everything you do. And as for not "doing it the right way", two things about that: 1. If it works, that's the first and most important definition of doing it the right way. For now, once you've gotten a component written in your UI or your backend sends back what you want it to send back, leave it alone until you need to get back to it. 2. You're not going to have a strong, working definition of "the right way" to write good, communicable code, not until you start writing code for a living and even then it will probably take time. This is part of the learning process. Colleges don't really teach you this, I think in part because in colleges any "group project" winds up being a thing where one person does all the work and everyone else takes credit for it, whereas in the real world pretty much everything you do will be a group project, only everyone actually works. It's fine; just accept that you don't know how to do this yet but will learn. I will say that even here at least for me I had a lot of angry nights getting into the programmer's way of thinking, which is something like "you can really do anything you want if you break it down into enough simple components" combined with that aforementioned "you don't have to keep everything in your head; once a thing works, all you need to remember about it is what you put in and what you get out" thing. But with that, too, I know I for one had to learn that by doing (tbf my college degree is in English, not CS, but to also be fair, I perform). I would try to also accept that reorganizing your brain this way is also part of the game.


Pantzzzzless

> whereas in the real world pretty much everything you do will be a group project, only everyone actually works. Not only that, but for quite a while, you will likely feel like the person who is just leeching off of the team. At least that is how I feel 1 month into my first job. But if you're lucky, you can message anyone on your team and they will be happy to walk you through just about anything.


Jake_Zaruba

It’s still just as valuable. You learn better ways to do things, how to problem solve, how to debug, etc. building is the best way to learn.


engineergorl

Lol, googling + trial & error is how everyone starts out.


asdfqazwsxedc

Some things that could help: - my bachelor's degree was like 90% theory and I also slacked off with a 2.8 gpa lmao so I also felt like I didn't know anything , you could be in the same position, but you'll get practical knowledge on the job and that's what school doesn't give you really - school doesn't make you a great engineer, but experience does - if you want to learn some general knowledge so you can feel confident, read books like: a common sense guide to data structures and algorithms, the practical programmer, designing data intensive applications, clean code And honestly just get nerdy and focus on what you enjoy doing or learning about in this field... Example, interested in machine learning? Watch videos, read about it, take online courses, or come up with a really simple project and break it down into small pieces (divide and conquer!) and take it step by step You're just at the point of "the more you know about something, the more you realize the less you know" I butchered that quote but the idea is there haha If you feel like you don't know anything, then start doing something about it! You'll feel more confident and better about not knowing anything Take it from me, im 5 years in my career after graduating and I still don't know jack shit but I'm having fun so whatever lol


MrAcurite

Machine Learning needs fewer people that have just watched some videos and done cookie-cutter starter projects. What we need are people who like reading research papers and people who can set up robust, distributed pipelines.


HumanSockPuppet

Everyone who is an expert in machine learning now had to watch their first video or make their first toy project.


MrAcurite

Sure, but there should be a lot more learning of essential background information before you do something as technically complex and easy to critically fuck up as Machine Learning, especially professionally. You should understand why you need a test/train split before you royally fuck your own shit up. You can start with a 10-line CIFAR-10 or MNIST project, but that's not enough to be able to really contribute much professionally, especially compared to something like webdev.


gHx4

Agreed, machine learning and fintech are two very technical sides of the field. Like you say, it's not that you *shouldn't* learn from videos. It's more that in machine learning, programmers need a more academic skillset; the ability to study directly from research and participate in publications of findings (even if just through a blog). The tooling used is significantly heftier than the average CRUD app, and can often require reverse engineering to fix undocumented software + untested cutting edge hardware. I think many self taught devs can still find a place in those fields, but will need to adapt to a different culture and programming mindset.


KingAristocrat

We've all got to start somewhere. It's tough to go straight into research papers without some background


MrAcurite

Then start with Math textbooks. Nobody suggests that Civil engineers build some popsicle stick bridges and then immediately start sending out resumes, and yet to even begin to understand Machine Learning requires Multivariable Calculus, Linear Algebra, and enough Statistical theory to not fuck your shit up. Walk before you run.


Dangerous-Bed-5335

Discrete mathematics turned out to be the best random choice of meeting my bachelor math requirements for an unrelated degree, it made me aware of and taught me the core concepts of how booleans and logical processors and circuitry worked


usr3nmev3

As a pure math/cs double major who's had a lot of experience with CS-only grad students in ML labs, I'm always shocked at how little theoretical background people have. Tons of people could list every sklearn clustering model by heart but don't even know what a contingency table or an eigenvector is.


kaynocts

won't lie i've done endless problems on eigenvalues/eigenvectors and still have no clue what they're used for


usr3nmev3

If you've just taken a linear algebra course, that makes sense. If you've taken a class like "theoretical basis of machine learning" or similar, that means you had a bad professor.


kaynocts

i took a "mathematics for machine learning" course and i still don't get them. to be fair this was during lockdown so professor is excused


MrAcurite

The applications of eigenvectors/values/spaces in Machine/Deep Learning are relatively sparse, but in terms of what they show up for in Linear Algebra and its other uses, they typically represent steady states in dynamic systems or solutions to problems. You see them in Differential Equations a bunch, when you do linear systems, because you're trying to find solutions that, after being subject to a linear transform, retain their own characteristics.


asdfqazwsxedc

Yikes


Flipitah

Im so scared that this happens to me... I am about to start again my CS degree after a long hiatus (military) and im freaking out thinking I will feel the same way you do. Agh


DesperateSuperFan

You should not slack off at least any programing classes. How you make efforts in programing class will directly give you tons of money.


Flipitah

I have always taken school too seriously I don't think I will slack off on my classes but I have seen so many videos and people talking about not understanding things in the end or on interviews that I am now super concerned about feeling the same way when I am done :(


cabbagebot

You will be fine. Truly use your time at school to learn. Listen to your curiosity and dig deeper into what you see. Think about school as a time investment in yourself and not a quest to get a degree and it will pay off. My suggestion: Challenge yourself to find a book about computing that looks interesting to you once every semester and read it. I did this and I feel like it really accelerated my career.


TransfoCrent

Could I get some book recommendations? That sounds like a good plan but I'm not sure where to start


cabbagebot

Here's the thing: u/Midas7g has given you a lot of great recommendations about books that *will* make you better at software engineering, but I think these books tend to be better when you have even a little work experience. I'd personally suggest not focusing on the practice of software engineering first -- start with computing. I only say this because I found computing really interesting, which is why I pursued software engineering (they are not the same). The hard part of software engineering is mostly working with other people, and to be honest, I did not find this very interesting when I was learning. I've since read Software Eng books, but it was still more of a "grindy slog" to inform myself. I think it's super important that you find the books interesting, because it's way easier to work hard and be the best if you are genuinely curious and enjoying yourself. Some of the stuff I read when I was doing this: * Structures and Interpretation of Computer Programs (this was a meme online at the time, but I genuinely learned a lot and a new way of thinking about programming) * Game Programming Patterns by Robert Nystrom (What can I say, I like games. His new book Crafting Interpreters is also very cool). * Ray Tracing in One Weekend by Peter Shirley * Random books about programming languages that I thought were cool (Python, Scala, Clojure, JVM was very cool ~10 years ago) * I Am Error by Nathan Altice * The Elements of Computing Systems by Noah Nisan and Shimon Shocken. * Domain Driven Design by Eric Evans But you should think about what you enjoy or what sparks curiosity, and follow that. Maybe you love music? Try finding a book about audio processing, or building digital synthesizers for example. Maybe you love art? Learn about algorithmic art. I guarantee you that when you springboard into something you like, you will find an endless series of branches to continue on. Just make your own journey through that -- and these are great things you can talk about to impress people during interviews or when you do internships.


Midas7g

Cabbagebot is absolutely correct. Let your passions drive your code. It definitely was my passion that got me to the point where I could really understand those books. My first programming book was actually: MUD Game Programming by Ron Penton He walks you through how to make a text based multiplayer game in C++, and it absolutely changed my career path. Currently I work on a multiplayer backend platform in the games industry. Don't slog through intermediate- and expert-level books until you've really solidified your love of programming. Trust me, you'll get to a point where you feel like you've hit a skill cap, and **then** you read the books I first suggested.


Midas7g

Clean Code by Robert Martin Design Patterns by the gang of four Working Effectively with Legacy Code by Michael Feathers Emergent Design by Scott Bain But the most effective way is probably finding someone to be your mentor who understands these books and can walk you though them with concrete examples.


Flipitah

thank you soooo so so much for your recommendation and for your words. I will give my 100% because I want to succeed in life <3 yayy!!!


konSempai

The very fact that you're worried about that means that you'll probably be fine. A lot of CS stuff isn't that conceptually hard. In school sometimes there's hard theoretical stuff, but in general - if you put in the work and have the right mindset, it's very doable imo.


DesperateSuperFan

Even if you tried very hard at classes and you still can't do programing at all when you graduate CS, then programing is most likely not for you. So you just better reconsider your career to be honest. People have different strengths.


BookkeeperBrilliant9

It sounds like OP probably went to a shit school. No offense to him, but good coding assignments with professors who care are not solvable in the last day with a little bit of googling. I’m a vet about to head in the fall, my program forced me to think. Hopefully yours will too. If you also end up at a shit school, then it’s up to you to make sure you’re actually learning.


Flipitah

oh gosh, I wonder which are those sh!t schools lol


BookkeeperBrilliant9

So I did some college at a state school before I was in the military, and it literally felt like they did not give two turds about me. Whether that be professors, deans, whatever. You could probably develop those relationships at a big public school now, I just didn’t have the wherewithal to do it then. I’m using the GI Bill at an elite private school now, though, and it feels like they’re actually invested in my success.


Aaod

> So I did some college at a state school before I was in the military, and it literally felt like they did not give two turds about me. Whether that be professors, deans, whatever. At the state school I attended about 1 in 5 to 1 in 6 professors had even the remotest care about student success and them learning job relevant material. I understand not knowing students names or similar due to the bigger class sizes, but things like the material being this laughably outdated, putting absolutely zero effort into teaching, copy pasting material from other professors while not giving any instruction to go with it or being able to explain it yourself, not caring at all about students learning what you are trying to each, etcetera it is ridiculous. My liberal arts professors were rarely ever like this so why is it just the CS professors who refuse to do their god damn jobs? If I had not spent so much time self teaching I would have been completely fucked because I would not have been able to rely on the education I received which brings up the damning question of would I not have been better off entirely self teaching instead of spending 5 days a week dealing with them?


Flipitah

that is awesome and I am happy for you! I do hope the team on my school is good and if is not trust me I will let them know because I want to succeed and not suck or being somewhere it sucks if that makes sense. I know im not paying for school but I also dont want to waste my gi bill somewhere crappy were they wont care about me as a student and or as a person


nylockian

It's tedious to learn, you have to put in the hours. The way a computer "thinks" is it's own thing. Seems like a lot of programmers have no background in electronics, but knowing that data is a stream of information flowing through things can be helpful in a way - like just basic signal processing. There's a few just sort of background basic things about the basic functioning of a computer/electronics that seem to miake it easier to understand how it all ties together. I started out knowing about electronics first so people have these gaps in understanding that are weird to me because they are much smarter and really good at math. My theory is that this is why a lot of engineers have a more seemless transition to software development.


Flipitah

I have always been a tech nerd, I love technology and I always wanted to learn coding. I started a while back but couldnt pay for it back home and joined the military, now chapter 31 pays for my school so its my time to shine :D hehehe


[deleted]

Well, don’t try to bullshit your way through it and end up like me. I probably only put in a few hours a week of work and did most of my projects last minute and somehow pulled off mostly As and Bs


K_MastaFlex

I was in the same boat accept mostly bs and cs. I did get a coding job and felt pretty underpreparerd. Did look dumb at a few points but things worked out and I learned on the job. 2 years in at same company now


UlteriorAccounting

Imposter syndrome maybe? I mean, if you earned good grades and the degree without cheating then you're probably have about as much understanding as that degree affords a person. Thats not to say that you'll understand everything or be as prepared as every other graduate. There's a lot you wont learn just from your degree, and many others put a lot of extra time/effort into self-learning other things while they're in college. You might be selling yourself short though, or possibly your expectations are unrealistically high for how prepared you should be just from your degree. I think its pretty common to realize you still have a lot to learn when you leave academia and enter the industry.


[deleted]

Do what I do. I have my school work but I also have multiple spreadsheets of learning goals for things in my own time. I am not going to rely just on school to teach me what i have to do. I'm not taking my algorithms and data structures course for three semesters but I'm already starting learning them in my own time. I'm no expert obviously, but i have listened to the many people on this subreddit who have that experience. Many of them say to learn on your own, code your own projects frequently, and when you are ready start doing some leetcode style programs. The goal is having a balance of all three, in addition to school work. That way you are in as good of a position as possible. Take your education into your own hands. Don't waste time between semesters just slacking off. Learn what you can. If you have easy classes then use the extra time to learn about your hard classes that you plan to take next semester. Maintain your own knowledge. Don't think of school as just "get the grades", treat it like a place to actually learn.


Flipitah

thank you so much for that! I will give my 100% in school and also learn on my own too! I cant wait to dive in on those classes, I am nervous of course but I got this!!!


inky877

Take classes where you build projects. My school had 3 courses that were mandatory where we built an Asteroids game in java, building a website project of our own choosing, and a senior design project where we learned a process for creating technical and research documents (120 page report) for a computer science related project (We did a hydroponics system that had a mobile application interface where you can view logged data from sensors). The latter 2 were group projects, so take a leading role, learn how to create a project front to back, and you'll be okay. My degree is in Computer Engineering so for the senior project we had to do something hardware related. I graduated in 2021 and I started doing web development two months ago. I also went back to school at 29 and the biggest advice I can give you, is never procrastinate, and get good at math. Whatever you do, it's going to feel like a lot, but just take one step at a time and if you have any determination, you'll get through it. Good luck!


FedeMengo

Do you like coding? If so build something in you spare time, if not study hard


fj333

>Im so scared that this happens to me This didn't "happen to" OP. It's up to each of us how our education turns out. Make a conscious choice to approach your education seriously.


warped-wood

Hate to be that guy that says, if I can do it you can do it. However, I tell any Veteran curious about going into CS that they can do it. Trust me I am not that smart at all. I served, I have a family, and I suffer from ptsd that effects my memory but I graduated from the top school in my state. That's with a GPA just shy of a 3.0. Hey, C's get degrees baby. I'll be honest the only thing that will get you through CS is persistence, asking questions and as stupid as it may sound. Just be a nice, kind, and mature person. Don't be a bro Vet. Your professors will view you as an adult and not as a stupid young student. It took me about 6 years to graduate but man is it worth it in the end (not that it will take you that long) . Some quick tips. Learn the basics of a language. Start creating projects. They don't need to be anything big or crazy. YouTube is your best friend. And trust me you will not understand everything! I just hit over a year at my first job and I'm still learning but it's crazy to see how things just start clicking. If you have any questions and want any tips on my journey, dm me. Seriously.


Flipitah

Thank you so much for that!!! I am going full speed ahead and I believe I can and I will do it! 🥰🥰🥰wooooooooh!!!!!!!


[deleted]

[удалено]


TheLongistGame

I was depressed through college and felt the same way you did after graduating. Took me almost a year to get my first job, I was awful at interviews and relied heavily on a reference from a mutual friend who worked at the company I received my first offer from. Now making six figures at a different but awesome company and feel pretty good about my productivity and how quickly I learn stuff on the job vs in university or self study. It's all going to be fine.


TheBadBox

For what’s it’s worth I share a lot of those feelings. I graduated in May, somehow landed a job. They didn’t really have a technical interview so I’m banking on getting my shit together in the first few weeks. I start Monday and feel like I don’t know shit.


lara400_501

I didn't do undergrad in USA but I do have tons of alumni doing phd at top USA universities like MIT, Standford, etc. During my undergraduate year, I had a few classmates who never understood programming. I studied at the best university of a south asian country. Now, the classmates who were never good at programming during undergrad years but doing well now can be in 3 categories: - worked their ass off after passing. Now work at faang as a senior SDE in the US - became PM, so no coding, they understand product very well - changed track and doing government job at my home country


AmatureProgrammer

What does it mean by PM?


lara400_501

Product Manager


fuktpotato

Project Manager


ProgrammaticallyHost

Probably Product Manager actually


LetterkennyGinger

Actually my guess is that it stands for Product Manager.


johnny800

I think it's Product Manager


fatalchemist69

I don't know guys, just guessing here, but can it be Product Manager? Again, can't really be sure


321gogo

Are you good at solving the problems after looking at it and googling/debugging? If yes you’ll be a good engineer. You don’t need to know shit you just have to be good at finding answers.


riftwave77

Where did you go to school?


[deleted]

A big, public state university in the SEC. Edit: University of Kentucky


Dealer_Forsaken

Security Exchange Commission?!


shagieIsMe

Southeastern Conference. Likely one of [these schools](https://commons.wikimedia.org/wiki/File:SEC-USA-states2011.png).


[deleted]

Oh buddy I hope it was Vanderbilt.


ajakaja

Vanderbilt isn't public.


[deleted]

Texas a&m has a great cs program


terjon

Roll Tide? You don't need to tell us, but we aren't going to be able to identify you even if you do. The size of the graduating classes at those schools are huge.


riftwave77

Which doesn't tell me much. What I should have asked is whether the CS program you went to is highly ranked and does the college and/or university have a reputation for academic rigor? There are outliers everywhere, but it would be difficult for me to think you graduated a well respected program having not learned much. Is there any chance you are underselling the amount of training you have done? Even copying, pasting and getting code to function is a marketable skill. Script kiddies can get stuff done, too


[deleted]

University of Kentucky.


[deleted]

If a university's CS program is as bad as you're describing, it's important for everybody else to know which school has this program.


[deleted]

[удалено]


UncleGrimm

> Because once you're out of the top 50-ish schools the quality of CS education drops pretty drastically. This is patently untrue. For CS, college "rankings" are misleading at best, completely irrelevant most of the time. All of these ranking methodologies measure the college's research output, they're not measuring the actual education you consume. You can go to a rank 1 college and end up with Professors who barely speak English... #1 in research, but good luck learning anything :) I went to a no-name state Liberal Arts college where the CS program was filled with Professors retired out of private Big Tech firms, and the curriculum was absolutely more rigorous than my friends' who went to some of the "elite" schools here in the Southeast (UNC, Virginia Tech, UVA). Their lab sessions sounded like daycare compared to ours. They never had to do anything like interface with an embedded system given nothing but a 1000-page datasheet and a blank C project, or reverse-engineer a packed binary. Stuff like that was all electives for them, their required classes at that level were easy-mode Python labs. AKA, stuff that's very easy to learn in your freetime. Top X is irrelevant. Research a college's CS department: who works there, what students say about them, what their background is. They paid several times more for their education than I did and none of them make more money than I do.


[deleted]

I wouldn’t describe it as bad, a lot of my peers landed jobs at FAANG with starting salaries well into 6 figures


compsciasaur

They did well on the interview because they studied hard/had internships. Some schools you get out what you put in.


Original_Ad613

That gives him about 0 information lmao


LegendOfLucy

gig em?


Godunman

For everyone asking, it’s Kentucky. Just check their post history lol


poppinstacks

Ngl, UFs program is trash


Rapidturtleuk

Hello friend. I’m currently working as a junior dev having done the same. Learning on the job and blagging I know what I’m doing. I just do udemy courses when I get home


eddiebluudy

How did you slack off during math and programming courses? I’ve heard CS is hard as hell


[deleted]

Not for math but most of my programming courses had group projects. It’s easy to let someone else do code for you. You then just have to pass the tests. Literally every upper division course has a group project.


SharpSocialist

You will learn at your first job, that is fine.


[deleted]

I knew it! But you're a DS&A expert so you're making double my salary at FAANG while trying to figure out how to concatenate strings.


TheNewButtSalesMan

Welcome to the club, brother. Get a couple years of experience under your belt and you'll be fine. Just bullshit your way into that first job.


theKetoBear

So I'm not every software engineer but you want to know my dirty secret and the dirty secret of most of my fellow senior engineer friends? We didn't know much shit either. In fact this idea that a Jr. Engineer coming out of college where you have short projects developed with specific never changing demands in a vaccuum is unrealistic . I am a big fan of the concept of "faking it til you make it " Not in the sense you should fabricate your background or experience but you need to believe and present yourself as an experienced and talented engineer and yes that means maybe you need to sound a little more confident about your skillset than you really are. I got hired to be a junior programmer and I was HORRIFIED I was an ok college student with passion and I had a decent portfolio full of side projects under my belt but I knew JACK SHIT about working in a real work environent. My first day they setup my machine, my first week of work I was mostly cutting out images in photoshop and taking care of the more manual work the more senior devs didn't need to waste their time on and I was reading code, or learning how SVN worked. Give yourself time to grow, no one comes into a field with hundreds of thousands of experienced contributors and knows how everything works on day 1 and it's unrealistic to expect that of yourself. You still need to project confidence, comfort, and a belief in your ability to get shit done though , that's who people like to hire. If you're not excruciating to talk to on top of that BONUS POINTS !


[deleted]

[удалено]


theKetoBear

It's toxic positivity to tell OP he can learn on the job?


NoCryptographer1467

That's not really what I meant. Of course juniors learn the majority of software skills on the job. In that sense you're right. But I still think many people especially in this thread are drawing a false dichotomy. There's a middle ground between being a competent dev and being absolutely clueless. Wouldn't you agree?


nbazero1

I've learned more in one week of my internship than in 3 years of my cs degree lmao


w0m

> just constantly googling and trial and error Dirty secret - that's software development. Yea, in ten years you'll get better and faster at it, but it's basically all the same. Imposter syndrome is real. Get your foot in the door somewhere and get out the first few months and you'll realize everyone is basically doing the same thing you are.


[deleted]

You probably know more than you think you do. Get a job and just spend lots of time learning and most importantly not getting fired. I was/am in a similar situation. Don't feel like I'm getting a ton out of school and not super motivated to spend lots of time on projects. Though, I'm learning a lot at my current job and feel like a competent jr dev. Hopefully, you get a team/company that isn't expecting you to just be a code monkey right off the bat as a Jr dev. I'd stay away from startups for your first job. Googling and using your brain to think through front end/back end will get you pretty far as a Jr dev. By time you're comfortable with those systems you'll hopefully move up to bigger projects and you'll be just fine.


fj333

> the correct answer for me is probably to put time in on my own to educate myself further. Yes, if you skipping your education before, and you still want to learn, then the answer is education. > Just was pretty jarring to get thrown into the waters and not know how to swim. You weren't thrown in; you jumped in.


[deleted]

Yeah, great response. Think I’m just now realizing the repercussions of my own actions. I was under the impression that just getting a CS degree with a good GPA would be enough. That is not the case. If you want to succeed in software, you simply have to put the time in. Doing class projects is nowhere near enough, especially when those projects are giving you specific prompts to follow. I’m learning that software isn’t just a degree, it’s something you really have to work your ass off for outside of school, you need to do your own work and projects. You need to understand it all


fj333

>I’m learning that software isn’t just a degree, it’s something you really have to work your ass off for outside of school, you need to do your own work and projects. You need to understand it all This isn't unique to software. I have a mechanical engineering degree also, and it was the same there. School is the foundation of your education (in any field), but it's up to you to finish the building. Grades don't equal education, and the intent is that you figure this out long before you enter college. Not trying to be a dick to you, but hopefully somebody else reading this learns from it.


suspiciouslysad

Im in this exact position except interning at a f50 I feel so stupid compared to everyone. Like I genuinely struggle with variables and strings and I’m about to be a senior.


[deleted]

Did you get the internship through connections? lmao. I know some pretty qualified, sociable people that couldn't get an internship.


darkarcade

Those ppl should just apply more then. It’s a numbers game after all.


easyjf

No it’s not. https://www.fastcompany.com/3069166/i-built-a-bot-to-apply-to-thousands-of-jobs-at-once-heres-what-i-learned


Fluxriflex

Not trying to be discouraging or overly-negative, but how did you manage to get through all your courses if you’re struggling with variables and strings?


suspiciouslysad

I managed to get by with multiple code reviews every assignment the Ta and prof were probably sick of seeing me. For test I studied super hard and I can read code I struggle to write it. Test at my university are proctored and have video surveillance as well.


Echleon

cheating


[deleted]

[удалено]


iamahamma

Senior in college


ThemasterofZ

Yeah this makes more sense


[deleted]

It makes less little sense *


David_Owens

How did you even pass your first CS class? wow


finessa_carlton

TLDR: not the end of the world, it's possible to learn on the job but you'll need to actually try and learn at some point. This isn't exactly me but I relate. Unless you are extraordinarily lucky, there will be a reckoning. You're life (hopefully) won't blow up necessarily, but something will need to pay for that knowledge gap. For me payment was in work-life balance, self confidence, and promotion velocity. I got the job, but found myself putting in way more hours at work than my peers, asking embarrassing basics questions at work, being doubted by my manager and falling behind the promotion curve. So I was making money, but had no time or energy for personal life when I got home and was sad for a couple of years. I went into the field because it was cool among me and my classmates to make it out like you could bullshit through and make bank, tech bro style. But a lot of those guys actually put in time behind the scenes or were smart enough to coast and I did/was neither of those things. Because I lacked the actual knowledge my peers took for granted I was grinding like I was at a finance company or startup while working at a company that normally has great wlb. I'd say I'm relatively 'caught up' now and it didn't take much more effort than I was putting in. Did all my learning on the job but it took intention to be sure. Learning on the job doesn't happen for free


EAS893

Was in a similar situation to you. Summa Cum Laude GPA at a decent (top 100 or so) engineering program, but I never really built anything beyond what was required for classes and mostly braindumped afterward. I could code when I needed to, but I didn't really like doing it. Looking back, if I'd realized earlier that I didn't really like development, I probably would have majored in something else. I just kept looking at it like something I needed to "push through" instead of seeing it as a test for "would you like to do this kind of stuff all day for the next few decades" in the way that you really should view your major related college classes. I did a co-op before graduation where I worked as a developer for a mid cap telecom firm, and I fucking hated it, left work every day with a headache, but at the same time, this experience probably helped me a lot in the job search. After graduation, I went into an IT business analyst role for a F500 manufacturing firm in a LCOL area. After a few years and a couple promotions, I started a project management job at the same firm earlier this year. Went from \~60k TC to \~90k TC over this time period. Of the 3 jobs that I've had since graduation, only one of them required any actual coding, and then it was more of a secondary rather than primary job duty. My current role requires zero, and that's the way I prefer it. I've also never been given a "leetcode" style interview at this firm, and tbh, at this point in my career, I'd probably walk out if someone tried that shit. It feels disrespectful as hell. I guess all of this is to say that all hope isn't lost. There are jobs out there for people with a CS background that don't involve coding. If you want to be a developer, then go learn all the bullshit they have to learn, but if you don't want to do so, don't feel like you have to just because you studied CS.


makeshiftmousepad

Bruh what? Tell me how you're getting interviews because i can't tell what I'm doing wrong. I'll even, just straight up, teach you python + all the underlying principles of computers that I know if that is what you're worried about. (But only if you have good advice on how to get interviews to trade with me)


Atysh

Pm me what industry, level and what cities you are looking at. I might be able to help


[deleted]

Your self awareness is an asset in this industry.


Snoops_and_Things

No, cause i am so relieved I am seeing this. I’m in the EXACT same position. Its very scary to think about especially when u start comparing urself to ur other peers. There were people in my classes that said they dont know anything but then they get full time jobs at Google/Microsoft etc etc. b4 they graduate. The only reason I’m not mentally breaking down is that I was told that for any new job/internship, 75% of it is u learning what to do at that job and the other 25% is u BS’ing ur other co-workers that u know what ur doing. Plus, I see everywhere that regular programmers google too, they freak out and contemplate their career as well. Does that sound good for a future? Not really but rn it brings me comfort that I don’t have to be a total expert to land a job. Good luck!


BoomerDisqusPoster

What questions have you been asked so far in interviews?


numbersguy_123

Stop being lazy


Dvmbledore

Please name-and-shame your university. In 2018 I taught software development at Origin Code Academy in San Diego. It was forcefully shutdown by the U.C. system in California because it worked too well. \--- My github contains 79 open-source repositories. I gave monthly talks to a group of 100+ coders in the audience. So that gave me a month to invent some killer idea, write the code, implement the invention and then give a new talk on that. This is an excellent way of forcing yourself to design and build new software.


[deleted]

You’ll fit in perfectly as a cs major!


BadLuckGoodGenes

I would just recommend applying to a defense contractor if you are a US citizen - most of their questions for the interview are on glassdoor if they ask any at all. They are desperate right now and the pay isn't terrible and the work is easy enough that it will buy you time to prep and fix your resume while getting paid. edit: POV - Graduated SEC with a < 3.0 GPA, most have ties to defense contractors making it really easy to transition to this job.


ILoveMyself77

Like Raytheon and Northrop ?


BadLuckGoodGenes

Those are defense contractor options - from what I recall (since I did those 2 interviews awhile back when I was more in this space) they were a breeze - I did an interview recently for a different defense contract recently and I didn't even get a single programming question - for 125k offer(I did not take this for a plethora of reasons). Again you have to be able to obtain a clearance for many of their positions but tbh that takes 6+ months so you could buy some time and experience and $$$ until then. Work life balance is nice as most work 9/80's -> 9 hr days with every other friday off -> perfect for interviews.


[deleted]

That's about the same as a friend of mine. 3.9 GPA in CS. Got out, started looking for work, university job fairs, etc, and realized he had no idea how to even write a program. Functions yes, but he couldn't visualize how to get a bunch of things working together. I had tried a handful of times to get him to work on some collaborative projects with me, just for fun. He wasn't really interested in doing that kinds of stuff since he felt like he looked at enough for it for school. He ended up getting a job as a UNIX admin.


snuffybox

> just constantly googling + trail and error for big coding projects. Don't worry, that is what every one else is doing too. Just keep doing that and you will be fine.


YaBoyLaKroy

i recently had the opportunity to go back to school and i decided on attempting a software engineering degree over and CS degree for this exact reason. i wanna code, i wanna build things, either for myself or at a job. it seems like CS is just another math degree. but idk, im uneducated so don’t take me serious.


ThisGreenWhore

I can say easily that 98% of the people I know don't have a degree in CS and do “stuff” in the IT field. They have degrees in history, education, geology, biology, etc. No idea if they bullshitted their way into getting their degrees either. However, they couldn't find jobs so they started to learn programming, system administration, and found their way into positions such as SysAdmin, Solutions Architect, Security Specialist, Tech Support Manager. When I was a manager, I really could care less if you had a degree or certifications. What mattered to me in a tech support position is how you went about fixing a specific problem. No, I will not tell you what I asked as it always changed because what I looked for is how good you were at problem solving. I could see it in the interviewee on how they approached it, and sometimes corrected themselves. That told me I had a person that could work in IT from a tech position. For higher positions, not even going to go there. Sorry, you have to go back to school to learn something. You might be able to bullshit yourself into a job. But you need to learn “Discipline” whether it be programming, system administration, Cisco, etc. to keep it. You will not get a job that pays you $80,000 out of college and keep it with a CS degree. Best of luck.


jmora13

Honestly man that was me in college, all you gotta do is decide what field of software engineering you wanna get into, build projects for that field using modern technology, grind leetcode, and apply like crazy. Nobody will know you just learned all that knowledge recently.


LuckyCharmsLol

I just finished my degree after a long road so imma add my own insight. My situation is different, but similar to some who go into CS. I like computers. Working with them is fun and programming was just another layer I get to play with. Similar to you, it was mostly theory and just kinda wack. There were some benefits like meeting new people and getting to finish a minor in something totally different. I honestly found that my CS degree was almost not worth the pain and struggle I went through, and it would have just been more efficient to get a degree in IT or something while programming on my own. Because that is exactly what I did. I do my own projects and I learn on my own. School is unfortunately not gonna teach you that, and if they "do", it's very bare-bones and not hands on at all. I would advocate learning how to do your own projects. Don't be ambitious, and if you are, then at the very least learn baby steps as you go along. I feel like most people will burn out rather quickly if they try to build their own App with little to no experience. To that note, in my own experience, I don't like following step-by-step videos or tutorials to learn how to program something. I very rarely retain anything, instead I will apply what I learned in a different project. Google along the way if I have any questions because I'm sure my question has been answered 4 years ago on stack overflow. This may not be the same for you, maybe you will retain what you learn. Maybe not.


gHx4

Don't worry, aim for junior positions and you'll be fine. I've met actual lead developers who didn't know certain foundational concepts in programming (but they all had notable coding strengths, too). You'll fit in a lot better than you think. Managing imposter syndrome while staying humble and observant is one of the most important things to do once you land your first job. You are not an imposter once you've specialized in this field, but you will always need to learn! Bullshitting isn't easy and people can smell through it. But at the same time, the bar for entry is basically just code literacy. You'll do fine as long as you can read and write the programming equivalent of an alphabet (stuff like for loops, abstraction layers, and apis), and can listen to your leads and managers.


[deleted]

It’s okay. I’m three years out of school, two weeks into a new job at one of the big techbois and I’m fairly certain I don’t know anything either. Still not sure how I got here, tbh.


tree_thoughts

Using my throwaway as there's a decent chance people in my life know my main account. I'm an SE Manager with nearly a decade of dev experience and I was the same at entry level. I still wonder how I got my CS degree, but pretty sure it was a lot of cramming and taking advantage of extra credit. Professionally it was a trial by fire to start, but you learn the ropes and fit into your role quickly. Most companies aren't going to expect entry level people to really start contributing to anything Production ready for a couple of months. I'm living proof that someone in your position can succeed. Hell, I now have \~20 people SEs and QA roles reporting into me.


madjecks

I am a self taught dev, have been for the last 8ish years. Recently I went back to school to get my degree. Beyond if statements and for loops there is very little they teach you that you'll actually use on the job.


xSaviorself

If you managed to get through a 4 year degree, that's pretty evident you'll get through whatever you end up with. The problem is your lack of knowledge demonstrates a lack of interest in the subject to the point that you're content learning what you're being taught, not relevant best practices from the industry. This hurts job prospects when you lack an in. Nothing new, you should know universities do not prepare you for the workforce.


yippiyak

I was the Same. Don’t worry, you’ll learn on the job, school is just a cash grab


Alternative_Engine97

This is probably ok for most junior dev jobs


[deleted]

Is it? The standards are higher these days. Lots of juniors come in knowing how to build small scale, full stack projects from scratch. And the vast majority have at least some in depth knowledge of backend, database, or frontend development.


Alternative_Engine97

Not sure that is helpful. Anything non production is commonly viewed as a “toy” application by hiring managers.


[deleted]

If the project is listed on a resume and the code is on a repo, it helps fills space on the resume and demonstrates they have some knowledge on certain technologies. What's someone without decent projects gonna list on their resume? A school project with whatever irrelevant Java framework professors force their students to use most likely.


Alternative_Engine97

Yeah, networking irl and linkedin vs applying to jobs and internships vs studying for coding interviews vs reviewing oop job questions vs making projects, one or multiple of these strategies may pay off. No way to really know what will pay off where though. Or what will ultimately land you a job. I made projects but really only got an internship by meeting a CTO who was hiring.


betanu701

I never expect juniors to know everything about coding. You should know some of the basics like a for loop, logical statements. But mostly you will learn true software development/programming on the job. That is where internships could have helped, but even if you didn't have any or had a terrible one, you are not automatically in a rejected pile. What most hiring managers want to see is that you are able to learn and pick things up. Ask questions when you are stumped. Shadow a senior when you can. Just be a sponge.


TonyTheEvil

>constantly googling + trail and error for big coding projects. Well you've learned the bulk of working in the real world at least


[deleted]

You are literally a graduate dude. When you start working you will literally know less than 10%. You learn and grow everyday.


Tw1sttt

Are you me? Just lucked into a job though so it worked out


[deleted]

I used to interview college grads, and this is pretty much a common story in non-selective US colleges. Eventually I just said fuck it and started hiring Chinese grads. They do study.


rjbgreen107

there’s a good chance that at least part of what you’re feeling is imposter syndrome


buried_alive0

Most of your learning will happen on the job, because you'll use frequently. A degree's main job is to get your foot in the market. If you have a basic notion you can get an entry level job and grow from there, like most people do.


HermanCainsGhost

Start working on projects in your free time


Clam-the-Clam

Better to be in that position than a competent person with no CS degree. Credentials are everything to recruiters. If I could choose between being a Chem major with a decent GPA that’s average at programming (what I have now) or a CS major with a 2.00 GPA that’s crap at programming I would choose the CS major in a heartbeat. Fixing a garbage, worthless college degree title is much more expensive and time consuming than fixing a skill problem like what you have right now. If you’re not “strong on paper” recruiters won’t bother to even give you a chance most of the time. I guess what I’m trying to say is that you’re not really in a dire position. Takes self discipline to actually improve but I am willing to bet that you can do it if you were able to graduate.


Suspicious-Service

That's how I felt after college, but 2 years later, I'm at least okay at coding, could be better if I put more time/energy into it


[deleted]

What is 3.0 GPA? Speak Catholic.


David_Owens

3.0 GPA is a B average.


deejeycris

It's ok bro what you describe looks like what all of developers do most of their time while coding. The important thing is that you are motivated to learn and improve. If you are not then I would seriously consider what you want to do with your life. A degree in CS is quite nice when you want to sidestep in something else. But motivation and eagerness to learn will move mountains. You don't need to know how things work deep down you just need to get stuff done and rely on your superiors to understand what exactly needs to be implemented and learn how to do things properly as well, so to avoid shooting yourself in the foot and create unmaintenable spaghettis. Little technical side note if you didn't learn it during uni you should learn git asap. If you were just young and slacking off too much during uni that's entirely fixable and you can still become a competent and productive software engineer. Of course you might need to be extra careful with what you do and ask more questions because you need to get up to speed with coding, terminology, logic, architecture and so on, there's no way out of this. About interviewing that's also something you can easily learn if you embrace the magic concept of motivation. There's soooo much stuff on the internet about that, we are truly blessed with how much stuff is out there for our field regarding interview prep. So start immediately and go get a job. Best wishes and good luck!


Quummk

The number one question is to ask yourself is that what you want to do, bc other ways you will be very unhappy at work. If you don’t like computers and you are not willing to spend countless hours sitting down, working and most important learning, you should probably consider a new career path.


anthrax_ripple

Lol I have a 3.92 and two classes left and I literally have no idea what I'm doing. I get the idea, but actually putting something that actually works together with no crutches is impossible. IDK what I did, but I did it to myself I guess.


al4yor

Just keep learning and pretending


sqlphilosopher

Computer Science isn't directly about programming anyways, but mainly about quite abstract discrete math topics such as type theory


BloodChasm

I didn't know anything really before my first job. Landed an entry level .net developer job and learned a ton my first year there. I'd say that when you land a job just buckle down and learn any of what you can. You learn that your company uses angular? Take some angular courses. They use springboot on the backend? Take some springboot courses. Etc.


unholymanserpent

I just started working as a junior dev right out of college and I feel a similar way. I feel like I'm just pretending to know what I'm talking about. I feel like I got my coworkers fooled into thinking I'm as good as them. Can't tell if it's imposter syndrome or I'm if genuinely garbage. But my team has coding assignments every other day where we all work on the same assignment and I just found out some of the devs that are finishing the assignments early are just googling solutions. They get praised for getting done quick but it's all a sham


mrchowmein

im on track to be a staff engineer, i dont know or understand half the stuff going on. but the same can be said about most ppl. but thats fine. you as a swe are only as valuable as your ability to solve problems and your ability to work with others in solving problems. the software development process is man made and will change over time, you can learn that, just like you can learn a language or a framework. your value is being able to solve problems. if you pride yourself as being a python ninja or some other framework ninja, you will be stuck as a code monkey forever not knowing why youre being passed for promotions or jobs. there is a reason why a lot of companies only ask for leetcode style questions and system design. your ability to solve abstract problems and your ability to design is more valuable than if you know a specific hard skill. companies asking for hard skills in a specific stack or swe process is not there to help you to grow, they want you do x and x only. once youre done with x, they are done with you.


[deleted]

[удалено]


CumbersomeKnife

Computer science degrees are a lot of theory and the amount of programming varies by school, but that is ok! I'm assuming you got your bachelor's degree, which is only intended to be the basics of what you need for the computer science field. If you're looking to go out and build things that is more software engineering and there is more to learn. The caveat here is there are a lot of CS programs where you get out what you put in. Put in a lot of effort and you get a lot out, put in little effort and you don't get much more than a degree out. This is in contrast to the programs where you don't graduate if you don't know what you're doing. Look for entry level jobs and internships, you have to start somewhere. If programming is what you want to do then come up with a small project to practice your skills. It doesn't have to be anything you intend to sell, just something you're using to learn. If you're interested in web applications that businesses might use and can't come up with something as a small project I can give you one that would let you practice frontend and backend skills. It's small, but as your skills grow it can be adapted in different places to be more and more complex and add practice for other things.


Hasagine

Been doing this for a while now. Still no idea wtf im doing.


_kyL

If you have the means, just practice coding assessments for a bit then apply.


CallinCthulhu

You picked up nothing from algorithms/OS/Networking classes? Nothing? I knew a few people who BSed their way to a degree. Via heavy cheating and coat tail riding. They either never got jobs, or washed out in a few years. Well, washed out of Engineering. Some of them became technical writers, IT support, or went into management.


MorningPants

https://youtu.be/erEgovG9WBs Here ya go. Just google every term in this vid that you don’t recognize then you’ll be set.


Appropriate_Shock2

Same with my school. Only reason I know shit is because of personal projects. 2 classes away from graduation. My 2 full stack classes are the only real classes that teach the full development of an application but there is only so much they can put in there. Also you could of bull shitted your way through these just following the guide and pass with an A. Granted I’m doing an internship now so I’m learning a lot more how everything works.


Da_Electric_Boogaloo

i feel this! it’s been really helpful to just keep on interviewing anyway - when i look stupid in interviews it’s a little embarrassing but at the end of the day they teach me and i get some new vocabulary and leads on what to work on. we just have to hang in there i think! you’re probably much smarter than you think.


[deleted]

[удалено]


KarryLing18

I’m a rising Senior doing a CS + Cyber Sec double major. One of my core rules when approaching anything in the IT field is to assume I know nothing, that I’m essentially an idiot wannabe techy. This way I take the time to look at things from the ground up, from the more trivial “common sense” bits of information, to the more complex pieces of work. Never be afraid to admit you ignorance, because we all start somewhere. However, don’t let it stop you in your tracks and keep you from pursuing your goals. Programming and IT in general is essentially problem solving, and the best way to go about deduction is through a step-by-step process. Find a goal, then find out what you know about the given topic. Once you have that aside, do more research on what you don’t know, a long with how to solidify what you do know…Even the most experienced IT specialist google and read in order to approach the problems they are given. With all the resources we have to our disposal it’s hard not to depend on them. You said you googled + trial and errored your way into the degree…use those skills sets. Backtrack and find out what you googled and why you did it. Find out what steps you took for your trail and errors, what worked for you and what didn’t. Information is everywhere and relatively easy to attain, however, what sets you up for success is the ability to look at a situation and apply critical thinking and deduction skills in order to arrive to a satisfactory conclusion. You’re going to have to read…you’re going to have to do research. Unfortunately you chose field where something can be relevant one day, and obsolete the next so researching is a never ending task for the job. Find a way to enjoy what you do and the rest will come naturally. It’s not to late, you’ve already earn the degree qualifying you. Now you just have to earn that title, not for others, but for yourself. Find your way into the never ending rabbit hole that is IT/Programming…don’t practice and do it everyday. Just practice, and do it everyday.


potatopotato236

It is extremely easy to, yes. I barely knew any practical coding when I graduated. I'm surprised you didn't at least get basics like data structures, OOP, and classes though. I'd just learn JS and get a front end position at some smaller company.


ElLute

I’ve been a career developer for over 25 years and I have to admit that it’s all been “googling + trail and error for big coding projects.” Get used to impostor syndrome.


floridaman1972

Do a bootcamp


[deleted]

> just constantly googling + trail and error for big coding projects Well, I’m working for over a year as a SWE and this is pretty much what I do all the time. About having vocabulary go listen to some youtube programming, or really study the basics of software engineering. You probably know the concepts but don’t know the names. It happens to me every time that my mentor will mention something by name, I’d say I don’t know but when he explains I’ve already seen it but never associated with the name. I’ve failed interviews for the same reason. It probably doesn’t help that I learn some things in portuguese and other things in english, and my brain can’t sometimes make the bridge between the two languages for technical concepts.


tired_entrepreneur

>just constantly googling + trail and error for big coding projects I mean that describes like 90% of the people I've ever worked with.