My degree is in this major. You’re right. You do learn programming, but you also learn business and networking. If you know you want to program for a living, go with Computer Science. I was in Community College doing Information Systems because I just wanted a career in computers (and they didn’t have Computer Science). I knew, leaving CC, that I wanted to program. But switching to Computer Science when I transferred to university would have taken too long and been too costly. I wish I had done it though. There’s seemingly no difference in the degrees if you’re applying for programming jobs, but I had to re-learn algorithms and other basic programming stuff when I graduated and it’s no fun if you’re not a good self-learner. It could just be me being lazy and not having networked or gotten much out of my degree though.
So my classes at university seem to be going heavy on Java/C++ right now, which means I don’t officially learn other languages. What would you guys recommend: Python, JavaScript, or HTML/web coding language? Short term, I want to shoot for an internship this fall and want something I could use; long term, I want to make games.
In that case I would learn Javascript. You can use it for web development and also game development. You could even download Unity3D and play around with it since you can write everything in Javascript. You can also use C# which your OO background of Java/C++ will be handy for conceptually.
I think a lost of us got into programming due to wanting to make games since we love video games. But the reality is game development isn’t what it’s cut out to be. You REALLY need to have the passion for it and it’s tough to get into. It’s also not nearly as lucrative as other areas of software development, and from what I’ve read about the industry, the hours are pretty intense for the most part. If you’re also serious about game development, make sure to go heavy on advanced math courses in college. Making games is very strong on the math side of things, especially if you’re doing 3D stuff you’re talking about a lot of matrix calculations.
I’ve only made one game (that is in the app store) and I did it when the Flappy Bird craze hit. I just wanted to learn. I have another game in the works with Unity3D that is an online multiplayer turn based game, but that game got put on the back burner when my son was born in 2015 and I don’t know if I’ll ever get back to it since I’ve since become a co-founder of another company and we’re hoping that it can become a legit business.
Yep, macbook is preferred by a lot of developers, even. It’s a UNIX environment so you can easily work with important tools like compilers and interpreters for coding.
Hey @purbeast do you have experience with *nix shell programming at a very low, OS level? Ubuntu is fine for now, but I really wanna dig into the whole UNIX experience, and I read BSD systems might be closer to that? I can play with C on pretty much anywhere, but the shell programming experience, I don’t know…
I was actually looking into just installing Arch first, not sure if I’m ready for all that at once lol.
And I’m looking at FreeBSD because I’ve read about how BSD is more carefully engineered to follow Unix traditions than GNU/Linux.
I’m really fond of figuring out shell programming though, not really a “download a script and run it” kind of guy. Especially when there are very powerful tools like find, sed, and awk that can do complicated tasks in one-liners. Just recently, I’ve just found out about piping into vim from find or grep for example, and from there I can run macros to do complicated text manipulations pretty easily across multiple files. Something like a more powerful sed.
Thanks for the positive responses in the past guys, I enjoyed my c++ course so much I’m learning python on my own. The experience is great and fun, and I found out that SageMath uses python so I will actually get something out of it (didn’t plan to, just wanted to learn it for fun).
I’m starting to learn Python on the side as well. It’s really cool, the features I love so much in ES6/ES7 turn out to actually come from Python, and it’s been there for quite a few years now!
Python definitely looks good. I love functional programming in Python, too, just because def and lambda are so good to look at.
I’m messing around with Django, too, so I can extend my Python skills to web dev and not just for scripting and toy programs.
Update: I’m starting to mess around with Lisp now, too! Got my Emacs and SLIME set up, with Evil mode because I need that vi-key goodness…
Functional programming is so fun, it’s really changed how I code in ES6/ES7 Javascript! It’s so hard to go back to plain old ES5 Javascript lol. Python is fun, too. I said to myself I’d learn Django lol… maybe when I get the time.
I’m not sure where the confusion comes from:
Mac, Dell, Windows, native Linux, it doesn’t matter. You can learn on any of them. Just install a virtual machine with Ubuntu if you want Linux. Or install a virtual machine with Windows7 if you want visual studio. Apple products are overpriced and generally don’t help you learn anything in particular, unless you want to program for Apple products…
One can get a very cheap little Linux laptop and learn loads from that.
Maybe their script engine is written in C++ by their programmers (probably), but the interface looks like visual basic:
Also, C++, Java, JS, whatever, it’s about solving problems.
That’s what a university will teach you, backwards and forwards, how to solve problems.
BSD and Linux are essentially the same. When working with BSD on a mac, one finds many features lacking compare with the GNU tool set one gets on Linux. I do almost all my programming in an Ubuntu virtual machine because BSD tools generally just aren’t as good OR aren’t compatible with the GNU tools.
Also, most Linux programming, such as basic C system calls (aka the “UNIX experience” I’m guessing), is all very straight forward. Read the man, google for examples, and try it out. Sometimes you learn by doing it and sometimes you learn by reading.
I’m not sure what you want to get out of it, but a virtual machine with Ubuntu should get you pretty much everything you want out of the “UNIX experience”.
Unless you want to modify the kernel, but that’s a different story.
See above. If you get motivated, you can try to make simple games in another language and tool set. Otherwise, you’re heading into an area which is, generally speaking, C++ orientated and really is about making the hardware play your game consistently and quickly. Thus the leaning towards assembly/C/C++ in video game development in AAA titles. Make that GPU sing.
There’s a lot of front end stuff you might like available in Python, JS/Web/etc. It’s not great for heavy duty game programming, but for something simple, you can get it going in a week if motivated.
You can get trial version of Windows 10 enterprise and Visual Studio 2015 Enterprise for free and it’s good for half a year if I remember correctly. Enterprise version of Windows 10 allows you more control such as ability to prevent the OS from automatically downloading and installing updates, among many other nice things.
If you’re doing development with Linux, I would recommend Cent OS 7.
I personally preferred C/C++ over Java in the past and assembly knowledge is good not just from a performance side but if you want to jump into security field but it’s not for everyone, also the Java market seems to be huge.
I was building some stuff using Reflection.Emit the past couple of days. Just because you’re in .NET doesn’t mean you can’t write assembly!
(But keep your functions short and simple, because, assembly…)
Yep figured that out very quickly after making that post. Simply programming in GNU/Linux is the same across every other platform. Wading into arcane OS shit is definitely different, the developers all make different decisions (a lot of the times they’re conscious decisions, like not having various compile-time environment flags or not supporting various parameters, but sometimes they’re mistakes, too).
I don’t think I made it clear that I wanted to dive into the OS and how it was made, not install it and use it for general purposes and programming. I eventually learned most of it from reading, cause I realized very quickly that actually using the systems was the same throughout lol.
Also I know Macs are on a derived version of a BSD kernel, but aren’t almost all their userland programs GNU? Shell and various binaries are all GNU… They’re just very outdated, because Apple can’t get on anything GPLv3 lol