Programming Courses

Hello everyone.

With Autumm aproaching fast the new season of scholarships are around the corner. I want to apply to a postgrad program in Physical Quemisty, but since most of the high end research that are done these days needs, to a certain degree, programming skills. I want to make my curriculum more interesting so the scholarships judge stop for at least 5 more seconds on my resume, one way to accomplish that is to put in the mix some Progamming courses.

But this is the "hard" part: What I want is to be able to make programs that can handle middle-sized algorithms without crashing, of course to be able make simulations and that kind of things. But since I don't have not even remote knowledge of programming don't know where to start, I looked for some courses but that got me a little confused.

I've found "Java Programming" and .NET programming. I don't have a single idea if I can achieve what I want with those lenguage and here is where you enter. I need advice on which lenguage you recommend for starters and which is the most science oriented (if such one exist).

(The .NET programming course I have found incluse topics like C# and VB.NET, but I'm a total newbie and don't know what those things mean, looked on internet and found someone that oversimplified that, he said: that .NET programming is drag-and-drop buttoms... don't know how robust could be a program designed on that lenguage, but again I don't know much of programmin)

(in case you are wondering: I graduated from a 3rd world country university and they din't offered any extracurricular activity, thats why I don't have any expirience programming)
 

xenu

Banned deucer.
stay away from .NET programming, it's garbage

if you've done any programming before id recommend checking out a general-purpose mainstay language like Java or C. if not, start out with an interpreted language like Python or Perl which are easier to pick up and also scientifically applicable, though not necessarily as extensible or fast as the big 3 (java, c, c++)
 
I'm gonna third Python, and if you like that try some Ruby. I'm learning it on my own right now and it's kind of cool.
 

Surgo

goes to eleven
is a Smogon Discord Contributoris a Site Content Manager Alumnusis a Programmer Alumnusis a Top Contributor Alumnusis an Administrator Alumnus
The thing is, you have to decide what you're trying to do. There's kind of a lot to "programming" or "computers" and whatnot, and it's generally about more than trying to learn a language.

If you just want to learn some basic programming skills, you could do a lot worse than an intro class on coursera. Something like this: https://www.coursera.org/course/interactivepython (that's from Rice University, an extremely well-regarded school in the USA). That will probably help you in the future more than anything else.

Once you have that sort of foundation you can learn stuff that's more specialized to what you'd be working in organic chemistry -- statistical modeling and mathematics (Python is pretty helpful there, numpy is a standard in this space), large scale simulation, etc.

Don't go around to online tutorials for C# or Java or shit. Those aren't going to help you. There are all these free college classes available online that provide a basic intro to programming. Those are great resources. Use them.

xenu said:
stay away from .NET programming, it's garbage
No.

You should stay away from it anyway because it's not a good learning language, but just...no.

Intros that use Java are also almost universally horrible because Java is a horrible language for learning programming. Stay away. If you don't like the course I listed, find another basic intro on Coursera and use it.
 

Sam

i say it's all just wind in sails
is a Battle Simulator Admin Alumnusis a Community Contributor Alumnusis a Top Tiering Contributor Alumnusis an Administrator Alumnus
I think MATLAB is probably your best bet. It's a bit different from Java and Python but for your purpose it's gonna be pretty useful. It has pretty widespread uses and is commonly found in research academia, where I can assume you'd find yourself in Physical Chemistry postgrad. I don't have extensive experience with MATLAB, but my understanding is it's much better for things like differential equations and vectors. Of course, learning Python is never a bad thing and there are plenty of resources available to learn it on your own. I'd say get try out Python for a bit to get the knowledge, but MATLAB would probably look better on an application.
 

Bass

Brother in arms
is a Forum Moderator Alumnusis a Top CAP Contributor Alumnus
MATLAB is not a bad choice. Personally though I have always preferred Python + numpy + matplotlib for scientific data analysis. MATLAB has historically been more popular for this purpose but people are starting to switch to python since it is free (MATLAB requires a license). It is also a much more versatile language, and extensions are super easy to install. I recommend installing the Anaconda Python Distribution as this includes most packages that one would need for scientific data analysis (eg numpy and matplotlib).

If your future work will be heavily reliant on high performance computing (eg numerical modeling), then you will most definitely need to learn Fortran, and possibly C/C++. I do not recommend tackling these languages though until you are comfortable with a simpler language like Python.

Lastly, practice always trumps reading an online tutorial for the purposes of learning a programming language. Once you are comfortable with the basic syntax of whatever language you choose to learn first, I highly recommend this website: http://projecteuler.net. The goal of this site is to solve a variety of math problems through programming techniques.
 
Pick up Python or C depending on what you're doing.

Python is easier to learn, but isn't as efficient as C. I'd start with Python.


If anyone recommends Java or C++ to you, you can safely ignore them. Both are only worth knowing if you want to go into IT professionally.
 

Aldaron

geriatric
is a Tournament Director Alumnusis a Battle Simulator Admin Alumnusis a Smogon Discord Contributor Alumnusis a Top Tiering Contributor Alumnusis a Top Contributor Alumnusis an Administrator Alumnus
honestly, ignore the language bashers; the best answer is do whatever interests you (all the languages have some advantage or disadvantage to them)

that said, you seem more catered / interested in academic programming, and the main languages / technologies prevalent in academia now are matlab 1 and python 2

both are easy to pick up, so have fun
 
Pick up Python or C depending on what you're doing.

Python is easier to learn, but isn't as efficient as C. I'd start with Python.


If anyone recommends Java or C++ to you, you can safely ignore them. Both are only worth knowing if you want to go into IT professionally.
Why would you ever recommend C over C++? C++ is so much infinitely nicer...

But yeah academically Python is probably your best bet.
 

Toast++

Nexus is literally the worst.
is a Site Content Manager Alumnusis a Battle Simulator Admin Alumnusis a Programmer Alumnusis a Top Researcher Alumnusis a Top Smogon Media Contributor Alumnusis an Administrator Alumnus
There are pros and cons to everything.

Matlab and Mathematica are commonly used for these purposes though I think there may be a cost for the latter. I really have no opinion on them as languages.

C & C++ are nice, but I would say that there is quite a barrier to entry on these languages and there's very little need for the performance boost that they will give you. You also need to be careful since you can manage memory directly with them. I would urge you away from these.

.NET, despite what the people here say, was actually designed for speed and ease of development and even the drag and drop components are done really well. VB or C# (both are ".NET") have what I would consider the lowest barrier to entry since you don't need to learn any command line BS to make em run. Visual Studio has a ridiculously good setup with its intellisense, error messages, debugging tools and one-click run. There is also tons of help on the internet. I really don't understand the opposition to these as a learning language unless you just really want to avoid Windows.

Python is a classic beginner language. It's reasonably simple and there's plenty of support out there. The 2.0-3.0 divide may give you problems at some point; I'm not sure.

Java is.. uhh.. cross-platform.. and.. umm... I can't really think of much good to say.


Anyway, of these I'd suggest Python or a .NET language. That said, it's really whatever you find yourself interested in.
 

Surgo

goes to eleven
is a Smogon Discord Contributoris a Site Content Manager Alumnusis a Programmer Alumnusis a Top Contributor Alumnusis an Administrator Alumnus
Why would you ever recommend C over C++? C++ is so much infinitely nicer...
There are a lot of reasons (and a number to prefer it the other way around), none of which are appropriate to discuss in this thread which is about learning programming from nothing. Happy to go into it somewhere else, though.
 
Interesting to see people talk about Matlab so much. I mean, sure, I get it. I guess I just found it annoying and confusing, personally.

.NET, despite what the people here say, was actually designed for speed and ease of development and even the drag and drop components are done really well. VB or C# (both are ".NET") have what I would consider the lowest barrier to entry since you don't need to learn any command line BS to make em run. Visual Studio has a ridiculously good setup with its intellisense, error messages, debugging tools and one-click run. There is also tons of help on the internet. I really don't understand the opposition to these as a learning language unless you just really want to avoid Windows.
Visual Studio helps avoid "command line BS" just as well for C/C++. I'd say start with C if you want a more serious base, because simpler languages will hide the behind-the-scenes dirty work from you. Then again, that's exactly what "entry-level" is for.

An entry-level language that's meant to be easy/fast for the programmers at the cost of actual runtime efficiency is definitely Python. It has everything you need (((and don't))) in one language so you don't have to look elsewhere.
 
many physical chem simulations and computations are done in matlab which is probably why people are mentioning it. same holds for python although it's also a good multipurpose beginner language on top of the specific use
 
I would like to echo Surgo's previous recommendation of Coursera, and that Python class in particular, which I took along with a friend of mine but had to drop halfway through because I just couldn't take that + my regular studies + regular homework + work + Spanish practice + trying to squeeze out a bit of time with my friends. It's not particularly labour or time-intensive; as long as you don't forget about it and chip away at the assignments, you should generally be able to finish your assignments. Note that you cannot submit your assignments late.

The instructors are good, one's a little dry, but none of them have annoying voices or anything like that; they're liable to make jokes every now and again to spice things up. There are also helpful forums in which you can get help or get involved in a study group, and the final project is creating a simple game, which is surely a nice thing to look forward to. This is also a completely free program, and considering the amount of quality that goes into it, this is absolutely solid and I would recommend picking it up, especially if you have a friend to get into it with you to ask questions or just to talk about it.
 

Nix_Hex

Uangaana kasuttortunga!
is a Site Content Manager Alumnusis a Forum Moderator Alumnusis a Researcher Alumnusis a Top Contributor Alumnusis a Battle Simulator Moderator Alumnus
Python is great, and coincidentally (or not) MATLAB has a very similar feel and functionality... namely its emphasis on vectors (lists in python). I tried numpy like 3 years ago and liked it but I stuck with MATLAB because grad courses used it. Visual C# is pretty nice for the reasons Toast++ gave and it is extremely simple for learning GUIs, something you don't get into very early in most other languages. As for Java, I didn't try learning that until at least 10 years after picking up perl in my teens, and it just left me wondering "how can anyone choose this as their first language?"

For general purpose, learn Python. For your simulations and stuff, use MATLAB, and definitely learn Simulink which is block-based and comes bundled with it. Prepare to pay some money, or maybe bum a license off a professor or something Anyway, best of luck to you. Hang in there, don't get discouraged. There will be errors and bugs out your ears, but stick to it and you'll be great.
 

Surgo

goes to eleven
is a Smogon Discord Contributoris a Site Content Manager Alumnusis a Programmer Alumnusis a Top Contributor Alumnusis an Administrator Alumnus
Most schools have floating Matlab licenses, no reason to buy one when you're at school.
 
Which one is it that online games such as on Steam are made with? I want to learn to develop online games, and I figure here is a good place to ask the programming code. I know absolutely nothing about Programming, like the OP, but I want to learn. Is it Java, Python, or what?
 

Surgo

goes to eleven
is a Smogon Discord Contributoris a Site Content Manager Alumnusis a Programmer Alumnusis a Top Contributor Alumnusis an Administrator Alumnus
Which one is it that online games such as on Steam are made with? I want to learn to develop online games, and I figure here is a good place to ask the programming code. I know absolutely nothing about Programming, like the OP, but I want to learn. Is it Java, Python, or what?
It varies, though usually none of the above. If you want to learn programming though, you should start with a course like I listed. It's a pretty big leap from "knowing nothing" to "making big games".
 
no mention of web design here? :( QQ

hahaha just kidding. Anyways, I have a couple resources I can share with you if you're interested in learning programming.

Python: http://www.kosbie.net/cmu/fall-13/15-112/

This was the first semester programming class that I took at Carnegie Mellon University taught by David Kosbie, one of the best professors I have ever had. It's a very rigorous intro course and it delves into a lot of basics when it comes to programming and uses Python as the first language to teach students.

Android Development: http://developer.android.com/index.html

^A fun venture you can explore if you want to.

Java: https://www.youtube.com/playlist?list=PL84A56BC7F4A1F852
http://web.stanford.edu/class/cs106a/

CS106A is the basic programming course taught at Stanford and the lecturer in the videos is a pretty funny guy, so I definitely recommend you give this a try as well if you want to learn Java.
 

Users Who Are Viewing This Thread (Users: 1, Guests: 0)

Top