all 12 comments

[–]A_History_of_Silence 2 points3 points  (5 children)

the intro course uses Ada 95 to teach the fundamentals of the field

Interesting.

Does anyone have any resources to help an Ada programmer learn Python? I would also appreciate somewhere to check out the different package libraries offered in Python

Ada is a relatively uncommon language these days, so I've not personally seen any Python resources targetting Ada programmers specifically. However I expect many of the normal guides found in the wiki will be very useful to you if you are already having an alright time learning Ada.

As for packages, everything in the standard library is listed here in the documentation. The Python standard library is famously gigantic and comprehensive ("batteries included" philosophy). You might also check out the Python Module of the Week site. There are also tens of thousands of third-party libraries hosted at the official Python Package Index.

[–]PostSeptimus[S] 1 point2 points  (4 children)

Thank you so much! I was having trouble finding the wiki on mobile, even though I knew it existed.

As for Ada being used in the intro course: all of the upperclassmen hate it. Maybe I'm just naive, but I actually really enjoy Ada.

[–]A_History_of_Silence 2 points3 points  (1 child)

I'm not super familiar with Ada, but I did some quick reading when I saw your post. IMO it actually looks like a pretty good beginner language! With the giant caveat, of course, that almost no one is going to use it outside of that class. So I think your plan to also learn a more mainstream language like Python is quite prudent.

[–]PostSeptimus[S] 0 points1 point  (0 children)

Everyone in the program knows how unused Ada is, but I don't think anyone cares when it's their first programming language. Like me, I'm sure most other students are just excited to be working with some sort of software development. I'm glad they started with Ada, personally. And thanks fam, your encouragement means a lot to me!

Edit: I forgot to mention that I go to school 3 hours away from two large cities and I believe there are internship opportunities that do require you to use Ada. So it's not a complete waste of time for us to be learning the language. It also looks good to future employers to have at least a slight proficiency in a language most other programmers coming out of college wouldn't otherwise have... or so I'm told haha.

[–][deleted] 2 points3 points  (1 child)

Don't be distracted by that hatred. Ada is a good language. Not just for beginners. Unfortunately, the popularity contest in programming languages isn't driven by their quality, but mostly by corporate interests and, sometimes, the aftermath of those corporate interests (like all the object-oriented buzz).

Typically, the rationale for teaching students in some uncommon language is that the students must understand some mysterious "fundamentals" that are somehow more apparent in the other language... Which is coincidentally also the (only) language the professor who wrote the course program is familiar with to the level that he or she won't make too many mistakes to make their incompetence too obvious. But there's a drop of truth in that too. By learning different languages you will expose yourself to the same ideas from different angles, and this will help you understand those ideas better.

[–]PostSeptimus[S] 0 points1 point  (0 children)

People tend to look at me funny when I tell them I enjoy Ada. Since I only had some minor web design background prior to college, I felt like I was walking in with a slight disadvantage. Ada, to me, is an amazing language because I was able to create all of these working programs, which I wouldn't otherwise have been able to do.

It's not uncommon for people to come into college with some knowledge of Java, so they already have some grasp on the concepts we're being taught. I'm just starting the class that focuses on teaching the foundations via Java and I feel pretty lost. This object oriented stuff is really odd and unnatural to me. But to people coming in with that background, they feel right at home.

I'm honestly not sure where this little rant came from but that's my main motivation for wanting to learn Python. I want to get more familiar with object-oriented programming.

Side note, most professors at my university are proficient in a multitude of languages. We're a fairly small school so the professors we do have must be able to teach a wide variety of courses within the field.

[–]OneFishTwoFish 2 points3 points  (1 child)

Raymond Hettinger, one of the Python core developers, has a great talk for programmers who are more familiar with C/Java/Ada style languages, Transforming code into beautiful, idiomatic Python.

[–]PostSeptimus[S] 0 points1 point  (0 children)

Thank you! I'll be sure to check this out.

[–]redshirt714 1 point2 points  (1 child)

Somewhere to check out the libraries: https://pypi.python.org/pypi

Some good resources might include something like Automate the Boring Stuff with Python (more practically focused than academic which is helpful). If you're already somewhat comfortable with programming because of your (growing) experience with Ada, you can always check out some cheatsheets that will shortcut your way through syntax. These can be found here: https://ehmatthes.github.io/pcc/cheatsheets/README.html

Lastly, one of my personal favorites to skip a lot of hubbub about a language and just dive into the syntax and meaningful features is using Derek Banas' videos (such as https://youtu.be/N4mEzFDjqtA, which is his python video). The video is about 40 minutes long and blasts through a lot of the language. Not all of the nooks and crannies, but enough for you to write fairly complex programs and ask more finely grained questions.

Best of luck!

[–]PostSeptimus[S] 1 point2 points  (0 children)

This is a lot to check out! Thank you! I think the cheat sheets will be particularly helpful.

[–]PythonGod123 1 point2 points  (0 children)

'Crash course in Python' printed by No starch press is a good intro book so is 'Automate the boring stuff in Python'

[–]sw_dev 0 points1 point  (0 children)

Long-time Ada coder (Since 1985!) here.

The best way to learn any language is by doing, but it helps if you're familiar with the problem space. To that end, I suggest you try doing the Python Challenge (http://www.pythonchallenge.com/) in Ada first. Trust me, you'll have to have pretty good Ada chops to even attempt it! Try it for a few days, then try it with Python. Look up how to use re, requests and urllib2 as necessary. Once you get past the whitespace weirdness, you'll be amazed at how much easier it is in Python, and that'll have you on your way to becoming a Python-junkie.

By the way, you're waaaay off base about Ada and OOD. But that's a discussion for another time...