First of all, welcome! As someone who studied computer science at a women's college, I have to say that all the women I know who code are pretty cool ;)
My answer to your question has a few parts. First, I'm going to give you a quick answer and a brief reason why. Then I'm going to describe some of the...
Best answer: First of all, welcome! As someone who studied computer science at a women's college, I have to say that all the women I know who code are pretty cool ;)
My answer to your question has a few parts. First, I'm going to give you a quick answer and a brief reason why. Then I'm going to describe some of the most popular programming languages today.
So! Part 1: My personal recommendation is that you study Python. It's commonly used in mathematics and engineering, and is often used to create powerful models. It's also very versatile and one of the easier languages for beginners to learn. It's often taught to new programmers because of its simplicity. Time-frame to learn it depends on a lot of things, including what sort of educational tools you're using, how good you are at self-guided learning, and what level you want to be at.
Typically, being "fluent" in a programming language implies that you could take most basic problems, design a program to solve it, and write that program. However, that means that in addition to just learning the language, you also have to learn how to design programs, which is much harder to do and especially tricky to learn on your own. Luckily, the process is similar to solving math problems, so you have an advantage in your experience there, but it will still take a lot of practice.
The fastest way to learn to program is probably to take a class, so if that's an option for you, I would recommend it heavily. If you do, you can expect to have the basics down in one semester. Otherwise, plan to spend 5-10 hours a week working at it, watching tutorials, making things, asking questions online, and being frustrated for six months or so before it starts to really make sense.
(See my note at the bottom of this answer)
Okay, Part 2: Some Common Programming Languages:
Like a lot of things involved in technology, programming languages go in and out of style, but here are the languages that you are most likely to hear about:
C - in some ways, C is the basis for most modern programming. It's been around for a long time (since 1972) and shows no signs of going anywhere. It's mostly used by scientists and engineers. Pro: C gives the computer a lot of control over what is actually happening in the computer. Con: because of that, it's much more complicated than a lot of the other languages that are on this list.
Java - Java is a pretty young (1996) language that just had a huge boom in popularity. It is mainly used for business/finance programming, but is also the language that Android phones are written in. A lot of introductory programming classes (including AP computer science) are taught in Java. Pro: It is built around a technique called Object Oriented Programming and does a good job of making this technique feel very natural and easy to understand. Con: it only does Object Oriented Programming, so it is not flexible for other types of programming. As a beginner's language, Java has a lot of weird key words that you have to remember but don't understand.
Python: Python has been around for a bit (1989), but is still gaining in popularity. More and more intro classes are teaching it, and it is increasingly used by scientists and mathematicians. It is also frequently used for artificial intelligence. Pro: it's easy to learn and quick to write. It supports a lot of different programming styles. Con: there are two different versions out there which are not compatible with each other. Python 2 is still used and is quite different from Python 3, so you always have to make sure you know which version you're using and which version a tutorial was written for.
R: R is a programming language for statistics. It's often used by scientists and mathematicians to process data that they have collected. It's pretty cool! You shouldn't learn it first, it's very specific, but I mention it because you might hear about it.
Cool! Thanks for following along with this info dump. One final note: I might be running a free online Python class/learning group this spring for some friends and anyone else who wanted to get in on it. It will be mostly women and LGBTQ folks, but if you want more information or have any other questions, shoot me an email at email@example.com and we can chat!
7 days ago