you are viewing a single comment's thread.

view the rest of the comments →

[–]CrippledCorgi 73 points74 points

Programming. My brain works unconventionally. As does my code.

[–]Arfington 3 points4 points

How did you learn? And any tips for someone in high school interested in learning how to program?

[–]noodlescodes 6 points7 points

I'm self taught. I started teaching myself when I was about 11. I didn't have access to the Internet at home so I downloaded a self contained compiler and IDE from school (it was Just BASIC, which had a decent self contained help file) and spent about a year playing with that. I initially started by trying to do my maths homework automatically (which was about calculating areas, perimeters, etc) which taught me about variables. Then I tried see what else I could do. In the end I made a small football/soccer game (with visuals and everything!) I then moved onto java. Eventually I started doing a maths degree at uni, which gave me the freedom to do what I wanted essentially (I think I had 13 classes I could do across the uni, and the other 11 required for my degree where within maths courses), so I did a java and c++ course, which were both reasonably elementary, they were intro courses, on to OOP and the other to data structures.

Over the course of learning the languages though I was reading a lot of wikipedia pages on different ideas in computer science, things like data structures, different IDEs and compilers, some of the nuances in each language which I didn't realise existed, version control, different types of grammars, security (mainly crypto stuff because I enjoy number theory).

I now work for the university I attended as a programmer for a person in the maths department, which assists with her research. I've also done online content creation for the maths department for first year courses. I've advised people in the software engineering section of the university as well, and over the course of reading documentation, I've picked up what is the industry standard, and have seen it change with certain iterations of languages as well.

So my tl;dr is: find a simple programming language (maybe Python, it has good documentation), and play with it and try to do things that you would normally do by hand by programming it and go from there.

[–]zparasite 11 points12 points

Go to school for computer science. It's important to learn how to do things correctly (such as programming practices and standards, design patterns, MVC design, version controlling, etc) that you often won't learn by teaching yourself.

Also, if you have a degree in CS, you will get hired somewhere as a software engineer. How good of a student you are, and how much you program outside of class (personal projects, internships) will determine how well of a job that is.

Quick edit: It is definitely possible to be self taught and be successful, especially if you want to be self employed. However, if you want to go into industry, most entry level positions require either a degree in a CS related field, or at least five years of experience. So, either way, you are looking at a long time investment, and I think the degree can certainly only help if you are that interested in learning (unless monetary circumstances really limit you from attending a school).

[–]Arfington 3 points4 points

Thank you so much! That was helpful.

[–]Tordek 0 points1 point

Don't study CS as Programming because it's not. It' CS.

Go into Software Engineering... Or learn the basics from the myriad tutorials available.

[–]rugtoad 0 points1 point

CS is still a good way to get your brain into the right way of looking at things. Also, every CS program out there will teach you some level of programming.

That said, if you can find a good software engineering'll probably come out with more useful knowledge.

[–]Dysl3xicDog -1 points0 points

I'm Self taught but I would be years ahead (money and position) of where I am now if I had gone to school for a CS degree.

[–]foomprekov -1 points0 points

Get the degree, but they don't teach you shit.

[–]idiot_with_a_gun 0 points1 point

They teach computer science, not software engineering. The two are only lightly related.

[–]foomprekov 0 points1 point

The coupling seems tight to me.

[–]zparasite 0 points1 point

Where did you go? I went to about a top 50 school (nothing special), and I feel like they taught a lot of great concepts. I am graduating in May, and during my interviews, I had many companies surprised that I learned some things in school.

[–]foomprekov 0 points1 point

Eh, I'm not doubting you, just saying that those going into CS should be prepared to teach themselves.

[–]CrippledCorgi 0 points1 point

Unfortunately, my HS did not offer any classes past the basic "microsoft introduction" unless you went and did running start (getting your associates 2 years early). So I'm self taught. zparasite has a good point, however the CSE program here at UW is ridiculously competitive to get into.

[–]FREEZX 0 points1 point

The first book i read on programming was teach yourself c++ in 24 days (i think) when i was 12, i had no internet so i downloaded dev-c++ and used it and the book together. Fast forward a year, i finally got internet connection at home and started doing USACO challenges and similar stuff, started going to national competitions. My primary interest was games, so i started learning opengl, and basically just messed around with libraries that seemed fun and useful.

[–]drakonite -1 points0 points

If you want to learn to program, spend lots of time trying to program. Read up on things but mostly just spend time doing it. Once you start to have an idea what you are doing, work with other people on things. FINISH projects, don't just start them.

Education for programming is a joke. Unless you're interested in a career that requires a degree I'd say it's a waste of money. Look in to what you want to do and talk to people in that industry and find out what they are really looking for. In some fields (mine for example) a lot of job listings claim a degree is required when it is not; it's generally looked on much more favorably to have a portfolio of projects to show.

[–]Picklebush 1 point2 points

Urgh. I've had to deal with the results of someone with "unconventional" code. Horrid horrid horrid.

[–]FREEZX 1 point2 points

Same in my case.

[–]DirtyDandtheCrew 0 points1 point

We were programming PLC's in college and I pissed off the teacher by simplifying what he considered a 15 page program using timers into a 3 page one using counters. He was mad because he didn't teach that yet but I knew that my way was easier and simple. So I helped the whole class use counters and we were done a week ahead.

[–]zparasite 0 points1 point

...pages of code?

[–]DirtyDandtheCrew 1 point2 points

We had to print them out and report on it.

[–]zparasite 0 points1 point

What year was this, and what was the class? I'm genuinely interested.

[–]DirtyDandtheCrew 0 points1 point

Last year, It was in my ELMT course at the community college. They have a great technical course at that school for many things.

We had to wire and program PLC's (think industrial computers) then troubleshoot them. It was great stuff.

[–]FUCKING_downvote_me -3 points-2 points

I'm a web developer and I'm always talking casually about how websites work and the technologies used and shit while my girlfriend sits there shaking her head.

[–]idiot_with_a_gun 0 points1 point

My wife and your girlfriend would probably commiserate over that one.