Am I wasting my time?

8    11 Jul 2015 22:04 by u/skivir

I'm in a little community college double majoring in programming and networking. I greatly prefer programming, it comes pretty easy to me. I've taken courses with C++, VB, MySQL, and HTML. Future courses include advanced VB, Java, SQL w/PHP, and a generic mobile app course. As you can see, I'm getting a basic beginners course in several languages. I want to learn Python and Ruby also. Anyway, it's a community college. I'm not getting an engineering or computer science degree from a university. Those math classes scare the shit out of me. Advanced calculus? Pfft, I'd be happy to pass college algebra.

Anyway, my question of wasting my time. Am I? Will getting a basic course on several languages help? Do I need to pick one language and try to excel in it? I already know I don't like HTML. I did enjoy VB and C++. I'm very interested in Java simply because I want to develop Android apps.

31 comments

5

I'm currently in an intro to programming class and my professor always stresses that it's not about the language you learn, but that you learn how to think like a programmer and design programs. Languages are just tools in your toolbox. You won't be able to make anything unless you know how to use your tools properly if that makes sense. I've heard that it's good to take courses in compilers, OS, data structures, stuff like that.

0

This is the closest to the truth when it comes to being a programmer. But if he/she is only looking for a job then it isn't as important as getting a few language courses and some side projects going.

1

I'm currently in an intro to programming class and my professor always stresses that it's not about the language you learn, but that you learn how to think like a programmer and design programs

They told me that, too, so I learned Pascal.

Then I could not find a job.

Liars!

4

If your primary goal is to get a job I recommend you ditch VB (or at least substitute C# if possible) and concentrate on C++ and Java. Those two languages together make up a giant portion of the job market (maybe more than all the other languages you listed combined).

2

At my community college I can only take the courses offered. C# isn't unfortunately. But I imagine I could find resources online. And I assume since I have a basic understanding of C++, I shouldn't have a hard time picking up C#?

2

C# can be seen as Microsoft's attempt at Java. With your knowledge of C++ and Java, it shouldn't be too hard for you to pick up.

0

Exactly, I've been surprised at exactly how similar they are; I've copy-pasted Java functions into C# with no/very few complaints.

0

VB.net translates to C# pretty easily. If you can't take C#, VB is fine to pick up the basics. Switching will be rather painless.

4

If you're serious in programming you shouldn't be avoiding math stuffs.

4

The most important thing is going to be the fundamentals... Logic and flow control doesn't vary much between languages. Things like "should I use file system storage or a database for this portion?" and how to properly implement GUI stuff without causing extra overhead tend to be more important in the long run. More advanced aspects of various languages can be picked up as you go. I'd probably go advanced with a single language... C#, Java, or C++... just to have something to really show a prospective employer.

Also, please learn to fucking document everything you do... code comments, proper labels, diagrams, etc.... because I can tell you from experience that it's not fun to diagnose problems with undocumented code filled with random workarounds 15 years after the developer was fired.

I'd drop the "networking" major... that entire portion of the degree can be made up with a couple classes and CCNA/P certification.

0

I will disagree with the last comment. I got a networking degree from my local CC, and am finishing my BS in CS from a major university. I've been earning a nice salary with the network stuff, and the programming work is starting to pay off as well. I have an overlapping skill set that not a lot of people have - strong networking AND programming capabilities. So..."why not both?"

0

As I said, that portion of the degree can be made up (probably surpassed significantly) with a CCNA/P.

Why not both? Because it's a waste of money and time.

2

You are probably wasting your time on VB. Not a lot of stuff uses that. Learn Java and C++, then learn Python or Ruby. Once you have those, you will be able to learn lots of other languages.

Learn about databases, how they work, and how you interact with them programmatically. Most jobs involve this at some point, yet it is rarely a focus of any college program.

Also, take the math. If you really enjoy programming, rest assured that your brain DOES work that way. Just start with easy classes and work your way up.

1

VB is for when you want to maintain old systems and stuff someone else wrote. Very rarely is new stuff made in VB.

0

This. I inherited a system where everything was written in VB and running on ASP. We've still got Win2K servers hosting pages! EEEK! My first thought to reply with was "ditch VB," then I remembered my own situation.

1

I've interviewed, hired, and mentored a lot of developers. The biggest difference between the really good ones and the not-so-good ones is knowledge of CS theory: algorithms, data structures, how things like databases and operating systems work.

If you have a good knowledge of that kind of thing, then most of the time when you have a problem you'll be able to say "oh, this reminds me of..." and have at least most of a solution. That's what makes a good programmer.

0

If you don't like math programming isn't for you. You're learning the easy stuff right now, but once you really start learning it math is going to become a factor. Its just another thing to learn and to be scared of it is silly. What will you do if you can't figure out a complex programming problem?

If you're still set on it then I recommend picking up a theory class like Data Structures.

1

If you don't like math programming isn't for you.

I don't like math and I'm currently employed as an iOS developer.

Programming is for everyone who is interested. It's not an old boys' club.

What will you do if you can't figure out a complex programming problem?

Break it down into smaller, easier problems and solve each one individually. Work smart, not hard.

0

Breaking down things into smaller easier problems is exactly what mathematics teaches you. And yea, okay , You don't have to like math but I bet you use it in your day to day programming activities. This person is saying they can barely pass college algebra. If they don't have the motivation to break down their algebra problems into smaller easier to manage thing what are they going to do when they get into a huge code base or something they don't like. Foundations in math are used in programming.

I am aware its not an "Old Boys' Club".

1

Since you made this comment, I decided to re-learn all the math I ignored in high school—which was all of it—using Khan Academy.

Breaking down things into smaller easier problems is exactly what mathematics teaches you

I see exactly what you mean now. Factoring a quadratic equation is breaking it down into smaller pieces. As is simplifying radicals.

0

Those math classes scare the shit out of me. Advanced calculus? Pfft, I'd be happy to pass college algebra.

Others have picked up on the programming specifics, but I'd like to pick up on this specifically. I've been a software engineer for 15 years, and it's true I haven't used that advanced maths very often. I expect there are specialist fields where you use it lots, but they're the exception. However, here's the thing: all the good programmers I know were also really good at maths in school. So, while it's not important in itself, I've always considered it a bit of an aptitude test.

0

I dropped out of college and landed a job that's well over 50k in salary. It really depends on your determination and work ethic.

0

If you really like writing code, but you're not really into the science / math aspect, then I would suggest that you find something you're passionate about outside of development and then supplement that with your coding skills. But if you see your future as a solid developer, then I highly recommend that you at least take a data structures & algorithms course and definitely do as much work on the side as you can, because the real experience comes from tinkering around.

0

If you can at least get an associates degree that will count for something to some people.

VB is not fashionable. I would say get the associates with minimal effort, in the meanwhile DO pay attention to trendy 'buzzwords' because newer languages and technologies usually ARE more relevant because they are more marketable skills.

Make an Android app with a map of your campus.

Its a good idea to focus a bit but definitely don't force it, especially early on you want a broader exposure I think. If you are interested in something then play around with it.

The trick I think is to have projects and train yourself. Things change, and even religions like SQL fall out of favor. The best way to use your time is to be good at Googling or npm module searching so that you can take advantage of recent thinking or advances.

In some countries/provinces an associates degree makes you legit for working, like for teaching English (if you ever want to try living in Asia), so I would get that.

Also, not all bachelor's programs are that hard, and you can take your time. If you can find a cheap BS CS degree that gives you an advantage in that no one can have one over on you on that count.

I wish I had finished the four year degree. Algebra isn't that hard. The trick is having friends for support and not having too many classes or work at the same time.

But that is for the paper, not the knowledge. The concept of a curriculum and college in general is obsolete. To learn you need to try to build projects, google/internet read relevant topics, copy code and modify for your purpose, ask questions and try to work with real programmers such as on open source projects. The main trick is having interesting projects to play around with. They don't have to be big projects.

And you can google big topics like software engineering, test-driven development, project management, data structures and algorithms, deep learning, etc. I would go so far as to say that if you are good at Googling and sorting through results, free websites/books etc., IRC, livecoding.tv, etc. and then doing experiments and teaching yourself from those sources, the internet is better than MIT or Stanford. Actually you can access some great Stanford/MIT/etc material online.