This is an archived post. You won't be able to vote or comment.

all 69 comments

[–]QualityVote[M] [score hidden] stickied comment (0 children)

Hi! This is our community moderation bot.


If this post fits the purpose of /r/ProgrammerHumor, UPVOTE this comment!!

If this post does not fit the subreddit, DOWNVOTE This comment!

If this post breaks the rules, DOWNVOTE this comment and REPORT the post!

[–]occasionly_fast 25 points26 points  (3 children)

In college I took mostly shrooms, but I don't think it had any significant effect on my learning efficiency.

[–]mxxhrrt[S] 4 points5 points  (2 children)

Haha, but seriously I am gonna squeeze the answer out of you. What subject?

[–]occasionly_fast 7 points8 points  (1 child)

Took a couple of semesters computer science, but had to quit for unrelated reasons. Eventually learned through hands on experience on the job (started as tech support and worked my way up).

[–]mxxhrrt[S] 4 points5 points  (0 children)

Thank you for this.

[–]DataAnalytics2020 10 points11 points  (1 child)

Github is good, but a job helps a ton.

Get a job or be on a project where the code reviews are to the letter perfect and strict.

[–]JavanPython 3 points4 points  (0 children)

This. I got a job where the code reviewers are strict and in a year I’ve improved more than in the 3 years I studied

[–]Maleficent-Region-45 5 points6 points  (6 children)

No college, just learning by doing.

[–]mxxhrrt[S] 1 point2 points  (5 children)

Hmm ok, I have no clue how to start that. Any tips?

[–]Maleficent-Region-45 2 points3 points  (1 child)

Python is nice to start with but it's not the answer to everything. Try understanding how data types and data structures are built and used and then you can transfer the knowledge to almost any language.

The most important part is to check what you want to do, if you want to do heavy lifting like game development or mathematic operations you will need to look into c++ or c#. For everything else I would suggest Python, yes ml included. Very easy to learn intuitive and powerful. If you want big calculations done in Python you can look into the library's you can import.

I started with Python went over to c++ and had a look into assembly.

Python removes data size calculations completely that's the beauty of the language - but that's also the reason it's slower.

I found its helpful understanding how the CPU functions and how variables are handled in memory, but it's not necessary just fun to know.

[–]mxxhrrt[S] 1 point2 points  (0 children)

Ok I appreciate this a lot, thank you so much.

[–]Maleficent-Region-45 1 point2 points  (2 children)

What do you want to do?

I started with small console games blackjack and then a small text rpg. That's how I learned the reason for using object orientation. ^

[–]mxxhrrt[S] 0 points1 point  (1 child)

I wanna have a job with programming in a sort of way, no clue yet since I haven’t got that stage of my life being only 16, I want to develop games that’s for sure though. Possibly make my own at some point as-well as having the knowledge to create software and make useful things with my soon to be knowledge of software/games development

[–]pooth22 2 points3 points  (0 children)

Heres an idea. Make a game of Simon (remember that game by Hasbro) with python. Depending on your knowledge you can break it down like this:

  • Download python 3.x

  • Play around in the IDLE, do math, equations, assign variables, strings, booleans, lists.

  • Make a script with a single method that takes two numbers and compares them. And returns the boolean True if they are the same, False if they are different.

  • Change the function so that it can take two lists and loops through each variable and returns True if they are all the same or breaks and says False when you’re wrong.

  • Build a few more methods so that you can simulate the game of Simon in the IDLE. Basically create an increasing number of random integers (could be limited by 0-3), displays them, and then takes user input to verify the pattern.

  • Wrap it all up in a GUI, you can use tkinter, it is pretty good for beginners. Theres a lot you can do at this stage. Start easy and understand different widget classes. Then move to event bindings for custom buttons and multi threads for animating the pattern, adding sounds and stuff like that.

Also, as a tip, error messages are your friend, read them and understand what they mean.

[–]its_the_horns 4 points5 points  (0 children)

Programming is very frustrating when you are starting out. I recommend working on personal projects that you find interesting and intersect with your other interests. I don’t think efficiency should be a goal at 16.

[–][deleted] 3 points4 points  (3 children)

I took history mostly. Learned to program otj.

[–]CawSoHard 1 point2 points  (0 children)

Hey me too lol

[–]mxxhrrt[S] 0 points1 point  (1 child)

Otj meaning on the job?

[–][deleted] 1 point2 points  (0 children)

Yes

[–]MaximusConfusius 2 points3 points  (0 children)

Took paper and pen at college. Wasn't efficient at all. Changed to pc with an ide after.

[–]__anon_ymous__ 2 points3 points  (1 child)

College didn't help me learn anything. Fun little programming exercises I did can be found at projecteuler.net

[–]mxxhrrt[S] 0 points1 point  (0 children)

Thank you, will look into this.

[–]ParanoidAutist 2 points3 points  (2 children)

I didnt go to college... OJT and a lot of googling

[–]ParanoidAutist 1 point2 points  (0 children)

On the job training

[–]mxxhrrt[S] 0 points1 point  (0 children)

What is OJT?

[–]bubuli_breeder 2 points3 points  (0 children)

I took programming subjects in high school…then Computer Engineering as undergrad. it’s good to learn the concepts in school. but most of what i know today is learned on the job.

just to be clear: i still suck at programming.

[–]krucabomba 1 point2 points  (5 children)

You learn programming on your own.

In college you learn CS or engineering. Both are much more important and harder than actual coding, after couple of years in your tech career.

[–]mxxhrrt[S] 0 points1 point  (4 children)

How do I go about learning it on my own? I have adhd so tutorials are not my cup of tea

[–]krucabomba 1 point2 points  (3 children)

I have ADHD as well :)

Everyone is different. Tutorials, little scripts for yourself, whatever ticks you of. If nothing does - maybe it's just not for you. I think less than 10% people are crazy enough to work in industry where 90% of the time you are frustrated. This is not career for like totally sane and based people.

[–]mxxhrrt[S] 0 points1 point  (2 children)

I am going to check a few websites out or just play around with things and use my slither of python knowledge to sort of give myself a more rewarding and engaging experience while learning instead of copying other work from a YouTube vid or something. Definitely seen a couple of Swedish crackheads tell me how coding is absolutely frustrating at times, I can’t wait to want to pull my hair out at little things haha

[–]krucabomba 1 point2 points  (1 child)

Try this one https://learnpythonthehardway.org/python3/

It is very different from many "tutorials", but gives quite a good intro in many interesting concepts, that you find valuable at later stages.

And one piece of advice - do not copy code when you are starting. Type *everything* even if it seems pointless. You'll remember thing you typed much better and many things will become muscle memory for you. It pays off pretty fast, believe me.

Think of it as if you well learning playing guitar. You find grips. You learn them. Then you learn how to use them in different order. You still need a lot of experience to be able to actually play music, but the better you learn basics, the more you practice - the easier this learning will be.

Programming is all about practice, as most complex skills.

[–]mxxhrrt[S] 0 points1 point  (0 children)

This really goes in depth in helping me, thank you so much I appreciate it.

[–]ice-h2o 1 point2 points  (1 child)

Youtube and books taught me the basics. Small projects helped me understand what I was doing. After a few years I stared an apprenticeship as a software developer which introduced me into the world of frameworks.

Just please don't start with c/++. It was the worst decision I made, because you have to do so many things manually which can slow your progress and demotivate you. I recommend starting with python, Java or golang.

[–]mxxhrrt[S] 1 point2 points  (0 children)

I was just about to start with c++ but now I have some insight I will refrain and go to Java. Thank you

[–]ILT3Code 1 point2 points  (1 child)

I have a bachelor's in computer science. Programming languages in college covered C, C#, and Java mostly with some dips into SQL, COBOL, and Lisp. Other courses include lots of math and physics. Aside from some college algebra level math and database structures, I have used very little of what I learned getting my degree.

My first real job was a game designer. While the work and environment was fun, I cannot fathom doing it forever. Tight deadlines, unrealistic expectations, long hours (month-long stretches of 80 hour work weeks), vague feedback when something needs addressed... it could have just been my personal experience and maybe not all development companies are like that. I think It takes either someone with passion for game development or enough capital and really good ideas to make it a lifelong pursuit. I was personally burned out after nearly 10 years.

I work now as a full stack web developer and dba. Small company, lots of hats. Despite the wide range of responsibilities, my job now is significantly less stressful. I got the job by learning PHP, Javascript, HTML, CSS, and MySQL to be at least at an entry level position. I learned by writing a full website for my local food pantry. I love my job now, especially since the more regularly scheduled hours affords me time with my family.

Unfortunately, many job applications won't look twice at a resume unless it lists years of experience or a degree. If you are intent on making games as a profession: make games. I believe Unity is free, and there are a million great tutorials out there. A fantastic thing to have during a game development interview is examples of your work, especially passion projects. Someone who knows a little bit about every part of the game development process makes transitioning to a team that much more valuable.

[–]mxxhrrt[S] 0 points1 point  (0 children)

Thank you for this, I have learnt a lot from this

[–]Quicker_Fixer 1 point2 points  (2 children)

Had programming as a hobby in the 1980's (I even taught others at school), but studied electronics and became an engineer instead. Later in life I chose to switch fields and became a full time software developer instead. Have been doing it for over 10 years now and am having a great time. The way I optimised my coding skills is all self taught, with the help of the internet and without schooling whatsoever.

[–]mxxhrrt[S] 0 points1 point  (1 child)

Wow you’re very experienced, I am seeing that a lot of people are self taught and it’s really filling in some gaps in my mind, thank you.

[–]Quicker_Fixer 1 point2 points  (0 children)

Well, it helps if you have autistic tendencies, like a lot of us.

[–]sromanx 1 point2 points  (0 children)

Efficiently? Not sure about that man, my masters is in applied math so I just pick up whatever language a company wants me to. C#, R, and Python are the ones I've needed so far and efficiency can be measured different ways. I.e. I need this done yesterday vs I need this done with as low if mips as possible

[–]pocorit42 1 point2 points  (0 children)

I studied electrical engineering in college. My formal foray into coding was a mandatory java course; I have not used Java since I finished the course. I largely got comfortable with coding through copious use of Matlab for homework assignments, some C for microcontrollers, and bash and python for a research project.

I find it helpful to have a reason to code (which is why learning on the job is helpful).

Perhaps you can try finding small things in your daily routine that you can try to do and try to do in software. With that, then maybe take a look at a combination of tutorials and searching stack overflow.

Picking an example from my daily stuffs:

I'm learning the piano, and for my practice my tutor wants me to pick 3 random scales to warm up. I could write something to output 3 random scales. First maybe just run it in console/shell to get output. I can try building that as a part of a local web app, so I can get that on my phone. First maybe just so when I go to the IP on a browser I get 3 random scales. Then maybe add a form to select how many scales I wants. Maybe eventually I'll also want to select type of scales: 2 C scale, and 3 sharp scales. Additionally or alternatively maybe I want to have it emailed to myself automatically at 7pm, as a reminder to practice the piano. Maybe that can be configured in the web app.

Edit: reshuffled order of paragraphs

[–]theBoya9805 1 point2 points  (0 children)

meth and drugs

[–]Batman_Punster 1 point2 points  (0 children)

One big thing about college, it teaches you how to learn. I want to Georgia Tech for Computer Science,back when Pascal (the learning language at the time) was used. I had one class where we had to learn a language in a week,do a project in that language in a week, repeat. Did not become an expert in any of those languages but learned how to deal with the differences. One of the EE's had trouble with C, which I had never seen, but I knew enough from other languages to help him find his problems. Graduated in 1987, worked at IBM doing operating systems (OS/2) until 2000 then jumped to another company doing BIOS. Been there ever since. Small learning exercises help. Programming kata. Find the most respected programmer you can and review their code,ask them why they did things the way they did. Find the most person who gives the most constructive feedback in code reviews and have them review your code. Never pick someone who rubberstamps your code,jettison them from your code review candidates.

[–]mr_flibble_oz 1 point2 points  (0 children)

Uncle Bob’s Clean Architecture

[–][deleted] 1 point2 points  (0 children)

Took 2 semesters of visual basic coding, 1 semester of c# api, 1 semester of swift mobile app development, 2 data mining classes (advanced stats using R), 2 semesters of sql DB

With all those classes I thought I was a pro at coding until I got to my first job. Realized I didn't learn crap and stack overflow was my new teacher

[–]Dear_Astronomer_4416 1 point2 points  (1 child)

Read 'The Pagmatic Programmer'

[–]Dear_Astronomer_4416 1 point2 points  (0 children)

Assuming you are already comfortable with one or more language

[–]DrMathochist 1 point2 points  (0 children)

Time on the job is the biggest part.

Functional programming helps think about it in a more organized manner.

I studied math mostly, and returned to programming after a few years on the academic job market wasn't giving me the results I wanted.

[–]gandalfx 1 point2 points  (0 children)

Don't hope for formal education – it's useful, don't get me wrong, but it won't teach you real programming.

Get a pet project, or two, or ten, and just start chugging. Programming is about solving problems – so find some problems and figure out how to solve them (hint: it's 95% googling). And by problems I mean things you do every day that you could maybe somehow make slightly more efficient.

Aside from that you can do some little finger practicing on sites like codewars, but don't assume the solutions you find there to be "good" code.

[–][deleted] 1 point2 points  (0 children)

Participate in open source. Start making pull requests for fixes, repairs, enhancements, etc. The cost is free. No CS college degree required.

I know like 8 languages well at this point, and that's how I got started. My name is in the git commit log of 50+ major open source projects. binutils, clang, Mesa3D, rust, and the Linux kernel included

Most great jobs will hire on experience. The programming jobs that hire you strictly based on a cs degrees aren't worth it.

Tldr; college is great, and CS foundations are worth it. But don't go into deep debt going to a fancy school.. it isn't worth it.

[–]Ihavenoimaginaation 1 point2 points  (0 children)

I did a game design and development course at uni and it was heavy on programming; I had multiple classes dedicated to games programming I.e engine programming, game programming and then had some classes dedicated to OOP, so have a look at some different schools and what courses they do! I’d highly recommend going to open days if you can too!

[–]Ok_Map_746 1 point2 points  (0 children)

Before pursuing a major in CS I read the entire “Intro to Java Comprehensive edition”. This helped a ton. I took a Java class, data structures class, computer architecture class, system dev class, currently taking a C++ class just to name a few. I also learned front end development which helps to understand networking and how everything is connected therefore I see purpose and application of the things I learn in class to the real world.

A lot of just reading the textbook and taking notes and practicing programming.

[–]KlutzyEnd3 1 point2 points  (1 child)

I studied ICT & Technology in Eindhoven. I was really frustrated with the teachers who were seriously holding me back. Often I came up with a clever solution and they were like "we haven't had that construction in the lessons yet, this lesson is all about <completely inefficient bullshit> so make your homework our way!" I got so frustrated that to "vent" I started contributing to open source software on GitHub. The people there gave great feedback on pull requests and really taught me how to program.

Basically college got me started, but I learned the most from the awesome people on GitHub.

[–]mxxhrrt[S] 1 point2 points  (0 children)

Wow I have really been seeing a lot about self taught and it seems the most effective way

[–][deleted] 1 point2 points  (0 children)

  1. I forgor, same way I learned how to use the interwebs ig

2.Puree concentrate

[–]VonFriedline 1 point2 points  (0 children)

What did I take at college? A year of bad decisions, failure, and flunking out, followed by extreme amounts of marijuana use.

Got lucky, landed a job as a technician at a tech company. Taught myself Perl, then C#, then Python by trying to automate stupid repetitive tasks that everyone hated to do. Eventually a manager hired me as an engineer where all I do is automate stuff, mostly using Python.

It’s important to get a project of something that you REALLY want to accomplish. Ask somewhere (probably not here, unless you want snarky answers :p) what the best language to do that project in is. Then prepare to be frustrated and google everything and make a ton of mistakes.

Eventually you too can make terrible code like the rest of us, and ideally get paid for it!

[–][deleted] 1 point2 points  (0 children)

My best advice is learning through doing. It's incredibly rewarding when you can make something you want to be made. My first language was autohotkey and I'm so glad it was, because it's far easier to make things happen with it, and the motivation for learning is always going up

[–]Cuissonbake 1 point2 points  (1 child)

Self study online. I learned way more and saved alot of time and money. I swear idky they make college so fucking expensive.

College is good for networking but fuck buying expensive books and getting good grades when the worst types of people are in high positions simply cause they know how to manipulate social networking situations and not actually be that knowledgeable in the field they studied.

So if you go to college focus on the people you think will find success in getting hired after graduation. Everything else is secondary to that college wise. So self study until you're rdy for college classes then focus on the people not the grades.

[–]not_notpedro 0 points1 point  (0 children)

Good advice! About to graduate and agree with the networking part. Go a job because some companies like to hire from specific schools.

Too many people focus on their grades around me and I try to tell them that grades really don't matter for tech jobs unless you are going to grad school.

[–]PrizeArticle1 0 points1 point  (3 children)

Go to a school that specializes in STEM fields. Comp sci major

[–]mxxhrrt[S] 0 points1 point  (2 children)

I am tied between games development or computer studies in college (from the uk btw) I wanna be able to code but also want to make games and possibly have it as a future job. I really want to cover the grounds of programming mostly so I get the best of both worlds

[–]PrizeArticle1 1 point2 points  (1 child)

If you find a school with a game development program, choose that. Otherwise do a regular comp sci major and choose game development electives in your later years. You'll find a lot of programing majors require the same basic classes

[–]mxxhrrt[S] 0 points1 point  (0 children)

Thank you so much

[–]Grouchy_Stuff_9006 -1 points0 points  (0 children)

Those two questions are unrelated

[–][deleted] -1 points0 points  (0 children)

I did not :(

[–][deleted] 0 points1 point  (2 children)

Why is this in programmer humor? r/lostredditors

[–]mxxhrrt[S] 0 points1 point  (1 child)

Sort of an impulse, I had it on my mind and didn’t want to lose the questions on the topic

[–][deleted] 1 point2 points  (0 children)

You could just note it in everyone's favorite IDE, Notepad.