How did you learn to program? (C++, Mathematica, etc)?

  • Context: C/C++ 
  • Thread starter Thread starter Lagraaaange
  • Start date Start date
  • Tags Tags
    Mathematica Program
Click For Summary
SUMMARY

The forum discussion centers on the various methods individuals used to learn programming languages, including self-study, formal classes, and practical experience. Key languages mentioned include C, C++, Fortran, Python, and MATLAB, with many participants emphasizing the importance of self-study and personal projects. Notably, several users highlighted the transition from learning their first programming language to acquiring additional languages more easily. Resources such as books and online platforms like Codecademy were frequently referenced as valuable tools for learning.

PREREQUISITES
  • Understanding of programming fundamentals and concepts.
  • Familiarity with at least one programming language (e.g., C, Python).
  • Basic knowledge of self-study techniques and resources.
  • Awareness of online learning platforms (e.g., Codecademy).
NEXT STEPS
  • Explore C++ programming through recommended literature, specifically works by Bjarne Stroustrup.
  • Learn Python using the "Learn Code the Hard Way" website for practical coding experience.
  • Investigate MATLAB for scientific computing applications and personal projects.
  • Research effective self-study strategies for mastering new programming languages.
USEFUL FOR

This discussion is beneficial for aspiring programmers, educators in computer science, and anyone interested in enhancing their programming skills through self-study or formal education.

Lagraaaange
Messages
82
Reaction score
0
Did you guys self study or take a class?
 
Technology news on Phys.org
Combination of classes, self study, and professional activity.
 
It was self study initially. My first exposure to any kind of programming was applescript on classic MacOS, which I followed with learning C from a book.
 
My professors threw a Mathematica notebook at me, and told me to come back in the morning and tell them what it did and where the error was. And forgot to tell me about the documentation.
 
  • Like
Likes   Reactions: Cash Fulton and TESL@
Pascal: class.

Fortran: self-study.

C: self-study.

G (Labview): self-study.

Matlab: self-study.
 
C and MATLAB in classes
 
C, various assembly, HDL, MATLAB in classes and through personal projects. I learned Python through self-study.

It gets easier after learning your first language.
 
  • Like
Likes   Reactions: fred20
Pascal at high school, C++ at University.
 
Oh I wasn't really counting assembly, but we did some of that in our microprocessors and microcontrollers module as well
 
  • #10
Lagraaaange said:
Did you guys self study or take a class?
I self studied some Pascal coding but I stopped, hence now I'm confined to the basis of it (using variables, doing simple calculations and giving variables an user given value)
 
  • #11
Fortran, C++ and Java: Class

Matlab: School of hard knocks
 
  • Love
  • Like
Likes   Reactions: harborsparrow and Dishsoap
  • #12
I learned both C++ and Python through the books and undergraduate research project. I do not think the class is necessary for learning the programming languages.
 
  • #13
please refer a literature that is easy and knowledgeable for learning c++
 
  • Wow
Likes   Reactions: harborsparrow
  • #14
https://www.physicsforums.com/threads/good-book-on-c.762626/#post-4802944

For more discussion of C++ books, do a search in the textbooks forum for "Stroustrup." Most threads about C++ books mention Stroustrup along with other books.

As for how I learned to program:

Fortran - one lecture class and one seminar-type class as an undergraduate more than 40 years ago, then 15 years experience in graduate school (experimental particle physics) and teaching.

Assembly languages for Digital Equipment PDP-5 and IBM 1620 "minicomputers" - self-taught from books and documentation, also as an undergraduate.

Pascal - self-taught from books about 30 years ago, so I could teach a couple of courses that used it.

C++ - self-taught from books about 20 years ago, so I could convert the Pascal courses to C++.

Perl - self-taught from books and the web, also beginning about 20 years ago, for Unix system-administration tasks and a collection of programs for moderating a Usenet newsgroup.

HTML - self-taught from books and the web about 20 years ago, later some CSS and recently a bit of PHP.

SQL - self-taught from books and the web, about 10 years ago, so I could migrate my music-collection database from a proprietary classic Mac OS database to MySQL before my classic Mac died.

The first language is always the hardest, because you're both learning how to program (how to translate a real-world problem into a solution in program code), and the details of a particular language. If you learn how to program well in that first language, the following languages are much easier because you can focus on the details of the languages (syntax etc.).
 
Last edited:
  • Like
Likes   Reactions: harborsparrow and KonaGorrila
  • #15
It was genetic for me! I just knew how to write programs starting with BASIC then FORTRAN and calculator programming... This was before there were formal classes for kids. We learned in Explorer Scouts at GE but I was taught some by my uncle when I was a wee lad.
 
  • Like
Likes   Reactions: harborsparrow
  • #16
I took a class on C++. This was my introduction to the world of programming.
My university also offered Mathematica workshops which had homework assignments making up part of your grade in a couple of upper division Analytical Mechanics classes.
I started learning Verilog HDL on my own, though this is because learning how to work an FGPA was a research assistant project for a Physics lab. It was the first time I actually used a library for Physics. Checked out a couple of books, used a lot of online resources, including StackExchange.
I also started learning Python on Codecademy... probably about 50% of the way through.

Other than these formal programming languages, I've had some "informal" experience playing around with game development programs like Game Maker, RPG Maker, and designing maps for Source Engine games (Left 4 Dead, Alien Swarm) :woot:.
 
  • Like
Likes   Reactions: harborsparrow
  • #17
Books and 20 years of tinkering around. I'm still not very good :biggrin:
 
  • Wow
Likes   Reactions: harborsparrow
  • #18
IMO, if you're just starting out with programming, it's better to take a class. That way you will have someone looking at your work who can provide more valuable feedback than you can if you're self-studying. After you become competent with your first language you can pick up other languages on your own.

Here is some info about my experience.

PL/C, Fortran, Modula-2, C - class
Pascal, C++, Java, C#, JavaScript, x86 assembly, 68000 assembly, HTML, CSS - self-study

Edit: Oh, and Basic in several flavors.
 
Last edited:
  • Like
Likes   Reactions: harborsparrow
  • #19
I started with BASIC, a long, long time ago. There were no computer science classes where and when I went in high school, there were no teachers who knew how to program. I taught myself.

I also taught myself some bad habits. I unlearned those with my first class in PL/C. (I further unlearned those bad habits by being an undergraduate TA for the intro computer class.) I learned MIXAL (Knuth's MIX assembly language) as a small part of another comp sci class. (The next step was to write a MIXAL emulator in PL/C. The last step was to use the emulator to write a compiler of a subset of PL/C in MIXAL.)

Since then, most of languages I've learned I have learned on my own, sometimes with a rare short seminar. That includes Fortran, Pascal, IBM360 assembly, 8086 assembly, APL, lisp, prolog, ART/CLIPS, C, smalltalk, HyperCard, Ada, Java, perl, awk, shell (many forms), matlab, Tcl/Tk, C++, mathematica, python, ruby, and a bunch of other languages/tools/libraries, many of which no longer exist. The only ones that involved short classes or seminars were Pascal, ART, and Ada.
 
Last edited:
  • #20
Lagraaaange said:
Did you guys self study or take a class?

I got a degree at a fancy university, but 95% of what I know I learned myself. The programming instruction didn't amount to much.

The language is important, but what really matters in big programs is planning and organization. They don't teach you that.
 
  • #21
Both. Have a degree too, but most of what I learned was self taught.
 
  • #22
Dabbled around in visual basic as a teen and got introduced to the concepts, then I learned C, MATLAB and some assembly (mostly understanding how it works and edit it, not actually writing code from scratch) in university.
 
  • #23
artfullounger said:
Oh I wasn't really counting assembly, but we did some of that in our microprocessors and microcontrollers module as well
We've done a bunch of assembly...MIPS32, TI, intel x86, MIPS64. Programming an MSP430 with assembly is so much fun...
 
  • #24
snowman_ said:
We've done a bunch of assembly...MIPS32, TI, intel x86, MIPS64. Programming an MSP430 with assembly is so much fun...

We used I think some 16 pin PIC microcontrollers...I don't actually know what language it was using :x I failed that module anyway xD I was not a fan :P
 
  • #25
Except for a course in assembly on a very primitive computer (in 1964 all computers were primitive, a sophisticated computer had much less processing power and memory than a simple mobile phone has today), my first computer language was ALGOL60. Fast forward to 1973 - assembly programming on an Intel 8008. I stuck to assembly for several years before starting to use C.
 
  • #26
C,Fortran: at class but in fact it was a self study (I never attended the course- I got some help from a friend who was studying programming in univ and then everything I did by myself in order to successfully pass the course exam)
C++: self-studying + work
Java,Python: took and take online courses
 
  • #27
I dabbled around with visual basic 5/6 in my early teens.
My first real experience was in college when I learned C (mostly self-study).

Now I'm trying to get a deeper grasp using the "learn code the hard way" website.
In fact I'm using their course to get familiar with git as well.

Might take the python course as well from there. I like the concept (make it, break it, learn it)
 

Similar threads

Replies
6
Views
3K
  • · Replies 8 ·
Replies
8
Views
3K
Replies
86
Views
2K
Replies
69
Views
10K
  • · Replies 17 ·
Replies
17
Views
2K
  • · Replies 43 ·
2
Replies
43
Views
7K
  • · Replies 7 ·
Replies
7
Views
2K
  • · Replies 22 ·
Replies
22
Views
2K
Replies
81
Views
7K
  • · Replies 54 ·
2
Replies
54
Views
5K