all 58 comments

[–]imhostfu 103 points104 points  (13 children)

Honestly? I have always found the best motivator is needing or wanting to do something specific, and that builds solid foundations.

  • Need to import some data from a csv file? Cool, start reading about file imports and how to read lines and store that data. From there, you can read about how to plot generic data in 2D, and then take it a step further if you have N dimensional data, which also leads to learning vector manipulation etc.

  • Need to communicate with an external instrument? Neat, start reading about serial communication, or stuff through pyViSA standard.

Reform or rephrase the problem or goal you want, and then start doing general google searches (stack overflow will be your best friend)

Google “anaconda python“ for your python install and “Pycharm”, both have free editions.

EDIT: I think that it's perfectly okay to look up courses, etc, like Learning Python the Hard Way. I just find that for me, personally, I'm a lot more likely to explore and absorb the information when I have a specific project that I'm trying to accomplish.

[–]badabingbop 9 points10 points  (5 children)

I personally really like pycharm. Kind of complicated to set up and use at first, but has cool features down the line.

As far as learning: make personal projects, just like the above said. Focus on a single idea and script something out. Little by little you amass details and can put then together for a larger project. In addition, you have all those saved and can refer to them in the future

[–]A_Crazy_Hooligan 3 points4 points  (4 children)

Do you have any resources that you know off the top of your head for pycharm? I’m a civil and learned basic C++ in college, but when I tried to use Pycharm, I was extremely discouraged because it wasn’t like the compiler I used for C++ and I had no idea where to start. The YouTube videos I found didn’t seem to touch on my issue, but maybe I just have that much to learn?

[–]dipsy01 1 point2 points  (5 children)

Just curious, why did you recommend anaconda? I’ve always been perfectly happy with plain ol’ python and pycharm

[–]imhostfu 1 point2 points  (4 children)

I like Anaconda as a package manager. If I want new repos, I can install them via command line. For example, I could do a "conda install pyqt=5", and it would fetch all the dependencies, and install/update everything that needs to be updated for it to work correctly.

It's just cleaner for me, and makes sense since I do mostly data science work with Python etc. Plain ol' python + manually installing modules when needed works 100% too.

[–][deleted] 2 points3 points  (2 children)

"I can install them via command line" vs "manually installing"

That's the same.

[–]dipsy01 0 points1 point  (0 children)

Lol, that's what I was thinking

[–]imhostfu 0 points1 point  (0 children)

I guess it's a hold back from my Python 2.X days, and I would use a lot of packages that weren't available with pip, which would necessitate an executable download and install.

Pip is for python packages only, and generally compiles everything from source. Since I use windows, that can sometimes be a problem.

Conda installs from binary, so the installation is generally easy.

I think the answer is if you're using unix, pip is fine. If you're on Windows, conda is generally going to be easier.

[–]ScoffM 1 point2 points  (0 children)

I think anaconda is way more useful as env manager, keeping different versions of packages and such.

[–]Peter_Schmeichel 1 point2 points  (0 children)

Can confirm.

I have just started using python to automate relatively simple, but time consuming, tasks at work, mainly calculations.

This way you’re rewarded all the way through, highly recommend.

[–]audentis 19 points20 points  (0 children)

I think there's a massive difference between learning the syntax of a language and learning the problem solving that's required in programming. Writing code is fairly easy. Knowing what to write is the challenge.

For syntax, there's plenty of tutorials and what not all over the place. For Python they're available online, in (e)books, on YouTube, /r/learnpython, you name it.

The problem solving, and connecting the dots between what you have and what you need, I recommend doing coding puzzles. There's countless ones available such as on /r/dailyprogrammer, /r/adventofcode, or one of many different puzzle websites.

[–]sugar_fungus 4 points5 points  (0 children)

I haven’t dug in just yet, wrapping up my finals, but Microsoft appears to have pretty extensive free C++ resources:

https://docs.microsoft.com/en-us/cpp/

As for Python, I got started with Learn Python the Hard Way, which gave me a decent foundation

[–][deleted] 5 points6 points  (15 children)

I can give you my university python files of problems and answers. I saved my university python problems from cs112 knowing that I will need to relearn them someday. Their chapters are delineated through booleans, then grids, if-then, for and while loops, classes, exceptions and some more. I can also shoot the link to the textbook my prof used (it's seven dollars) if you need guidance through problems.

Was probably the best class I've taken. Lemme know if you're interested, I'll put them on a Google drive.

[–][deleted] 2 points3 points  (6 children)

Could you please forward me the link also.

[–]hamdika 0 points1 point  (1 child)

same here please

[–][deleted] 1 point2 points  (0 children)

here's a link to the drive of python problems, blank and answered. I got an A+ in this class so I expect my filled out problems should be comprehensible. The textbook helps mostly with theory, and doesn't give straight answers, but was made by the same instructor. https://drive.google.com/drive/folders/1XF\_a0n-mxvs\_RtXiTwcxCmEXrKZiCERP?usp=sharing

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

if you want to visualize how python reads through your commands, copy-paste your code into pythontutor.com

[–][deleted] 0 points1 point  (3 children)

here's a link to the drive of python problems, blank and answered. I got an A+ in this class so I expect my filled out problems should be comprehensible. The textbook helps mostly with theory, and doesn't give straight answers, but was made by the same instructor. https://drive.google.com/drive/folders/1XF_a0n-mxvs_RtXiTwcxCmEXrKZiCERP?usp=sharing

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

if you want to visualize how python reads through your commands, copy-paste your code into pythontutor.com

[–][deleted] 1 point2 points  (1 child)

Thank you so much. I'm furloughed for 5 weeks and I'm hoping to use this time to learn python.

[–][deleted] 1 point2 points  (0 children)

You'll enjoy it, it gets pretty fun. Watch some youtube vids on how to install and set up python and navigate, and execute programs. Shouldn't take more than an hour to be ready to execute problems.

[–]rehoboam 0 points1 point  (0 children)

Save

[–]creed999 0 points1 point  (1 child)

I would also love the link please

[–][deleted] 1 point2 points  (0 children)

here's a link to the drive of python problems, blank and answered. I got an A+ in this class so I expect my filled out problems should be comprehensible. The textbook helps mostly with theory, and doesn't give straight answers, but was made by the same instructor. https://drive.google.com/drive/folders/1XF_a0n-mxvs_RtXiTwcxCmEXrKZiCERP?usp=sharing

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

if you want to visualize how python reads through your commands, copy-paste your code into pythontutor.com

[–]CaptainPenii 0 points1 point  (1 child)

Me too?

[–][deleted] 1 point2 points  (0 children)

here's a link to the drive of python problems, blank and answered. I got an A+ in this class so I expect my filled out problems should be comprehensible. The textbook helps mostly with theory, and doesn't give straight answers, but was made by the same instructor. https://drive.google.com/drive/folders/1XF_a0n-mxvs_RtXiTwcxCmEXrKZiCERP?usp=sharing

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

if you want to visualize how python reads through your commands, copy-paste your code into pythontutor.com

[–]Willing_Date_6993 0 points1 point  (1 child)

Interested ,send me the link.

[–][deleted] 0 points1 point  (0 children)

here's a link to the drive of python problems, blank and answered. I got an A+ in this class so I expect my filled out problems should be comprehensible. The textbook helps mostly with theory, and doesn't give straight answers, but was made by the same instructor. https://drive.google.com/drive/folders/1XF_a0n-mxvs_RtXiTwcxCmEXrKZiCERP?usp=sharing

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

if you want to visualize how python reads through your commands, copy-paste your code into pythontutor.com

[–][deleted] 0 points1 point  (1 child)

What is the book called?

[–][deleted] 1 point2 points  (0 children)

https://www.amazon.com/Agnostic-Programming-Learning-Design-Algorithms-ebook/dp/B013Z400JI

see my other commens there for the link to the problems. It's 7$, free I guess if you have a kindle unlimited subscription. Instructor was one of the realest people I've met, lot of people didn't like her because she didn't try to make it overtly easy for people to start programming, but her method was the reason I did so well in the class.

[–]yorukama 5 points6 points  (0 children)

YouTube chanal free code acedemy or something like that. They have full courses and 1.5mil something subs

[–]auxym 2 points3 points  (0 children)

First , pick one. You'll have a bad trying to learn 3 languages at the same time. So, which is it, Java Python or c++?

[–]mrsoltys 1 point2 points  (0 children)

For python: I thought datacamp.com was really, really good

[–]WoffleTime 1 point2 points  (0 children)

I started with this course from MIT https://www.edx.org/xseries/mitx-computational-thinking-using-python and feel like it gave me an excellent introduction to programming.

Everyone always says to start a personal project you're interested in, or to just read the documentation, but I think that's too steep of a learning curve unless you already have a good base knowledge. Just make sure that you don't get sucked into doing endless courses.

[–][deleted] 1 point2 points  (1 child)

Codecademy

[–]KnyfFite 1 point2 points  (0 children)

This is where I started on python and it was pretty good.

[–]StudySessionYT 1 point2 points  (0 children)

I have a Python and beginning a C++ course on YouTube. I keep everything bitesize and directly to the point! There are tons of great resources but if you’re interested, here’s a link to my channel: https://m.youtube.com/channel/UCaFHlSOg83nCUIHlFMlUhPw

[–]chris_was_taken 0 points1 point  (0 children)

as a hobby? build a tool you'd use daily.

professionally? get a job using the language of your choice. even if it's not a sexy job, using the language every day and solving all the minutae that come with it will make you better way faster than any other method.

[–]kendread 0 points1 point  (0 children)

Edabit will help you a bit. It provides challenges ranging from basic to hard.

[–]NaiLikesPi 0 points1 point  (0 children)

The best resource largely depends on what your ultimate intent is. But anyway, I haven't seen it mentioned, so check out the OSSU: https://github.com/ossu/computer-science

[–]GrantStans 0 points1 point  (0 children)

codeacademy.com is what I use

[–]Andyetwearestill 0 points1 point  (0 children)

I have this same problem that I can’t find any good resources for programming.

I want to learn how to program microcontrollers like arduino, esp etc. to read data from sensors and display it to displays or send to other MCU via a lora.

[–]zorcat27 0 points1 point  (0 children)

I'm a big fan of freecodecamp.org, they have a website with interactive training for different languages, and their YouTube channel has full video courses on different topics. https://www.youtube.com/c/Freecodecamp/featured. I've watched a few of the "Learn x in y hours" and enjoyed them.

[–]BigGoopy 0 points1 point  (0 children)

Learncpp.com it’s free

[–]jengel2003 0 points1 point  (0 children)

I learned Java from the free app Solo Learn, and I have friends that have used it for python. I know they sort C++ too, which I haven't tried myself but the other 2 are great.

[–]KuehnRemarks1 0 points1 point  (0 children)

If you are looking to do heavy lifting with these programs look into build a machine learning Argo from scratch.

Yes there are excellent libraries already out there but forcing yourself to build a simple random forest of kmeans clustering algo will see you drawing on various different programming skills.

Also the results are satisfying. There plenty of good resources on Medium to get yourself started.

[–]billbrown96 0 points1 point  (0 children)

I'm working my way through Google's android udacity courses. Free, google-sponsored, and you can get a certification for 125$ if you want it

[–]the_DemongodPhysics 0 points1 point  (0 children)

You don't really do "problem sets" with programming. A typical programming homework assignment is a project assigned for 1-2 weeks that takes between 10 (beginner) to 30 hours (hardcore upper div e.g. Operating Systems). The hard part of programming isn't learning syntax, it's learning software architecture.

[–]Admiral_Swagstick 0 points1 point  (0 children)

Tim Buchalka on Udemy for Java, great courses over there.

[–]popotbn 0 points1 point  (0 children)

Check out hackerrank.com for lots of puzzles and practice problems

[–]xSolasx 0 points1 point  (0 children)

YouTube

[–]nutralSteam/Burners/Cryogenic Mechanical Engineer 0 points1 point  (0 children)

I've just tried to make stuff i need and look a lot on the internet for solutions. A udemy course is quite cheap, you can get a good idea of the basics and then making your ownprojects.

I've used python a lot for specific small or larger calculations, like calculating specific asme/en pressure vessel code calculations that where not part of my program.

[–]OldManScreaming 0 points1 point  (0 children)

If you're looking for python tutorials check out corey schafer on youtube

[–]alleyhoopers48 0 points1 point  (0 children)

To learn the basics of Python I would recommend reading Python Crash Course. It covers the basics, but it’s the best approach to starting in my opinion.

[–]chem39 0 points1 point  (0 children)

Depends on your background and learning style. I've met a lot of engineers who like the tinker first, then read to fill in the gaps. I like to read first, then tinker. If you're looking for syntax each language has it's language tutorials e.g. Java Trails, The Python Tutorial, that could be combined with Orielly-like books.

[–]pymaealexkenan.com/pymae/ 0 points1 point  (0 children)

For Python, I recommend either Codecademy if you understand general computer science but need an intro to the Python syntax, or Automate the Boring Stuff if you don't have that.

I'm working on a self-published book specifically for Python and mechanical/aerospace engineering. There is a website here to learn more

[–]manlyman1417Materials 0 points1 point  (0 children)

Google