Any Python programmers?

Remove this Banner Ad

Log in to remove this ad.

Cluggage

shitposter
Jun 3, 2014
7,223
8,456
AFL Club
Brisbane Lions
Other Teams
Arsenal, Chargers, Hawks, Padres
Web apps, but the more I'm reading seems like Java is pretty outdated in that respect? I'm pretty blind when it comes to anything outside SQL or anything backend for that matter.
I'd definitely recommend JavaScript in your case.
 

melbournemartin

Brownlow Medallist
Jul 22, 2003
23,494
5,553
USA
AFL Club
Melbourne
Other Teams
Genève-Servette HC, Pittsburgh Pens
Many thanks for your response.

So the absolute programming novice should start out with Python?

I probably should have framed my question better, but would Python also be your choice for the novice to gain the easiest path for the conceptual understanding of programming? It's just that I have read here & there that C programming gives the learner a more basic insight in to the software-hardware interplay, and my initial goal is not necessarily to first achieve any programming outcomes from the outset, but rather to better understand the underlying concepts of programming, as I reckon this would be the good base to underpin further learning.

As for R programming, I think I probably would like to learn it as I am currently doing work as a molecular physics research, and I assume this programming format would have various uses. Should a novice learn another programming language prior to looking at R?

Basically, If I was your 12 year old kid, what path would you map out from start to finish in order for me to become an adequate programmer?
I think that one thing that is often overlooked is making sure to keep up motivation. There are aspects of programming that will always be pretty dull and dreary. You may spend days or weeks trying to fix a silly bug. Throughout all of the crap, you do want to keep up an excitement level.

I partially say that because you mention a 12 year old kid, so I am thinking how to keep their attention.

So yes, whilst I'd say Python is a good free and popular language to start on, and one that is widely used professionally, often the programming tutorials are boring as hell.

R is kind of the same. There isn't really a fundamental difference between R and Python. R tends to be used more in statistics circles and consequently has a lot of stats modules built in, but that isn't to say there isn't anything you can't do in Python.

Ultimately the language you use professionally will come down to what you are told to use, and if you have a solid foundation in a different language it should be fairly transferrable.

Out of left field, might I suggest you check out Unity 3d? Yes, it's a video game creation software but you are making those games in C# (or Java, but I'd recommend C#). I dare say that most of the programming you do in Unity will be a lot more fun. Yes, there will some things that you learn which are Unity-specific, but a lot of it will be about fundamental programming. And if you are thinking "I just want to program... I don't want to do any art of graphics or sound or whatever" then that's fine, you can just get free assets off the marketplace.

I think that if I were creating a curriculum for 12 year olds based on coding I'd use Unity to create some type of Angry Birds knockoff. In one fell swoop you'd learn coding, physics, mathematics and project management.
 

melbournemartin

Brownlow Medallist
Jul 22, 2003
23,494
5,553
USA
AFL Club
Melbourne
Other Teams
Genève-Servette HC, Pittsburgh Pens
I would say that I'd invest in some free online tutorials/lessons before paying for a degree. At least see how much you like it...
 

utility

Brownlow Medallist
Sep 26, 2003
10,109
6,932
Melbourne
AFL Club
North Melbourne
I completed a Computer Science degree years ago. While there was valuable course content, most of what I used in industry was self-taught.

I'd suggest to the OP to check out the syllabus/units of degrees and seek out online content to cover those topics, along with introductory tutorials/lessons for the language you select.

Once you have a grasp of what you like/don't like then you can consider a formal qualification. But don't rush to spend money.
 

(Log in to remove this ad.)

dwwaino

Moderator
Jun 25, 2011
20,663
29,659
Victorian SSR
AFL Club
Richmond
Other Teams
BVB, MVFC
Is Python that useful to learn other than some specific use cases these days? As in, for a specific project, data science or something? It's probably subjective but for learning a language for the sake of learning a language I've been recommending C# to people for a few years now. It's OOP, has a lot of similarities with the rest of the C and C inspired family so the skills are fairly transferable. .NET framework is rolled out just about everywhere so you can write C# and run it just about anywhere from cross platform mobile, Mac OS, backend web servers, and it's even being heavily taken up by the video game industry now beyond Unity. I believe even CryEngine has adopted C# scripting. Personal opinion but I also think C# is a very elegant looking language when written properly. It can be a little verbose at times but I really do find things like C# Interfaces cleaner and safer which encourage proper OOP princples.

I started off in the 90s with Visual Basic (pre .NET stuff) and writing HTML in Notepad. I wish I stuck with it instead of stupid career counsellors at school telling me there was no future in it due to stuff like Adobe Dreamweaver replacing web developers and high level application design replacing low level programming LOL! Then I just spent years writing mods for games like Ultima Online. I've been on the tools for nearly 20 years but the pull to do something that I always feel I should have has been getting stronger so about 4 or 5 years ago I decided to get right into coding again. YouTube has probably been the best resource. I did do a Cert IV in Programming in that time which helped with some design concepts I don't think I would have ever known to research myself, but besides that it was largely a waste of time and money.

If I'm doing a cashy or something for myself or whatever then 99% I'll of the time start with C#. I'm doing a simple CRUD application for my work at the moment to store our job data as we're still using job cards and it's inefficient. For that though I'm using Java because we're just going to run it in the workshop from a cheap Android tablet. Java is so similar to C# that I just write it as if I'm writing C# and then trusty old StackOverflow when I run into a snag lol. Then a game idea I have had for a while seems like it's actually better suited to Unreal Engine than Unity and while C++ is a different beast again the core principles are pretty much the same.
 

Caesar

Ex-Huckleberry
Mar 3, 2005
27,103
12,852
Tombstone, AZ
AFL Club
Western Bulldogs
Is Python that useful to learn other than some specific use cases these days?
Yes. It’s easy to learn, quick to write and massively extensible.

It creates slow and inefficient programs, but in an awful lot of use cases these days that’s not really important. Old school programmers are generally way too obsessed with everything they write being elegant and well-optimised.

Nothing wrong with lower level languages and they’re fundamental tools in certain use cases and careers, but Python is still the best Swiss Army knife going around. Always good to own one, even if you have to learn to use a scalpel as well.
 
Last edited:

CD Xbow

Club Legend
Oct 1, 2014
2,243
4,760
AFL Club
Hawthorn
....I started off in the 90s with Visual Basic (pre .NET stuff) and writing HTML in Notepad. I wish I stuck with it instead of stupid career counsellors at school telling me there was no future in it due to stuff like Adobe Dreamweaver replacing web developers and high level application design replacing low level programming LOL! Then I just spent years writing mods for games like Ultima Online. I've been on the tools for nearly 20 years but the pull to do something that I always feel I should have has been getting stronger so about 4 or 5 years ago I decided to get right into coding again. YouTube has probably been the best resource. I did do a Cert IV in Programming in that time which helped with some design concepts I don't think I would have ever known to research myself, but besides that it was largely a waste of time and money.
I started out with Quick Basic, Turbo C and Turbo pascal. Like you I gravitated towards VB when it came out, it suited me being a better artist than a programmer. I was always thinking about doing Flash development but luckily never committed to it. I had to grapple with C++ when I was trying to make a game, MekArcade. MekArcade | SourceForge.net & MekArcade Windows, Mac, Linux game - Mod DB I can't say I ever came to terms with it and I needed the Cube engine devs to do a bit of stuff to their engine eg add torso rotation to the character model, which I couldn't do, but it never happened. Again, being better with visuals I did learn about 3D modelling and animation. Funnily enough doing that really helped doing sculptural works, understanding the interaction of light, on a form via a surface with it's own particular properties. I could always draw 2D stuff but was hopeless with 3D works, but after making possibly thousands of models over 6 years, I found suddenly I could sculpt. It goes to show that you never really know how the skills you learn might become useful.

I actually don't like Python much, it's slow and the OOP business adds a bit of overhead, nonetheless it's a good place to start for folks learning programming given the resources available for it and the platforms supported. I have found C on the arduinos pretty easy, it's much like the old simple C I remember, not the monstrosity of C++. I was interested in you recommending C#, because that's what a few friends recommended to my son.

I've really only done 'hobby programming' for desktops in recent years with PureBasic. Fast, old school procedural language that compiles to small, assembly language exes on Windows, Mac and Nix boxes. Next version is going to use C compilers which will open up platforms like the Pi, Android and IOS, which is very, very exciting. Makes me glad I stuck with it.
 

dwwaino

Moderator
Jun 25, 2011
20,663
29,659
Victorian SSR
AFL Club
Richmond
Other Teams
BVB, MVFC
I started out with Quick Basic, Turbo C and Turbo pascal. Like you I gravitated towards VB when it came out, it suited me being a better artist than a programmer. I was always thinking about doing Flash development but luckily never committed to it. I had to grapple with C++ when I was trying to make a game, MekArcade. MekArcade | SourceForge.net & MekArcade Windows, Mac, Linux game - Mod DB I can't say I ever came to terms with it and I needed the Cube engine devs to do a bit of stuff to their engine eg add torso rotation to the character model, which I couldn't do, but it never happened. Again, being better with visuals I did learn about 3D modelling and animation. Funnily enough doing that really helped doing sculptural works, understanding the interaction of light, on a form via a surface with it's own particular properties. I could always draw 2D stuff but was hopeless with 3D works, but after making possibly thousands of models over 6 years, I found suddenly I could sculpt. It goes to show that you never really know how the skills you learn might become useful.

I actually don't like Python much, it's slow and the OOP business adds a bit of overhead, nonetheless it's a good place to start for folks learning programming given the resources available for it and the platforms supported. I have found C on the arduinos pretty easy, it's much like the old simple C I remember, not the monstrosity of C++. I was interested in you recommending C#, because that's what a few friends recommended to my son.

I've really only done 'hobby programming' for desktops in recent years with PureBasic. Fast, old school procedural language that compiles to small, assembly language exes on Windows, Mac and Nix boxes. Next version is going to use C compilers which will open up platforms like the Pi, Android and IOS, which is very, very exciting. Makes me glad I stuck with it.
C++ feels absolutely bloated to me. Though I admit I've only ever used it within other frameworks like in Unreal Engine, but there is so much tacked on to it being so old and constantly updated to be more modernised. I find things like multiple inheritence messy and potentially dangerous (quite easy to call your entire program into memory if you're lazy). Compile times feel slow even on my 5900x. Meanwhile C# at least to me feels and looks elegant. Of course it's not an option if you need to do anything low level, but it compiles quick, writes neatly and has lots of nice features like Interfaces, no need for pointers and references, no header files or having to declare a method before its called, as well as some other quality of life things. With the .NET framework just about everywhere I would argue it's a pretty good place to start, especially as you don't have to worry about things like memory management. But I guess it all comes down to use cases. For me Python was never really a thing. I've looked at it, but never had a reason to learn it. My interest first came from video games while in high school in the 90s and that pretty much stuck with me. So I dabbled in C and C++ but without going to university it was really pushing sh*t uphill to learn. When I got into Unity and in turn C# did I finally find a language that I can say that I really enjoy and feel comfortable using.
 

CD Xbow

Club Legend
Oct 1, 2014
2,243
4,760
AFL Club
Hawthorn
C++ feels absolutely bloated to me. Though I admit I've only ever used it within other frameworks like in Unreal Engine, but there is so much tacked on to it being so old and constantly updated to be more modernised. I find things like multiple inheritence messy and potentially dangerous (quite easy to call your entire program into memory if you're lazy). Compile times feel slow even on my 5900x. Meanwhile C# at least to me feels and looks elegant. Of course it's not an option if you need to do anything low level, but it compiles quick, writes neatly and has lots of nice features like Interfaces, no need for pointers and references, no header files or having to declare a method before its called, as well as some other quality of life things. With the .NET framework just about everywhere I would argue it's a pretty good place to start, especially as you don't have to worry about things like memory management. But I guess it all comes down to use cases. For me Python was never really a thing. I've looked at it, but never had a reason to learn it. My interest first came from video games while in high school in the 90s and that pretty much stuck with me. So I dabbled in C and C++ but without going to university it was really pushing sh*t uphill to learn. When I got into Unity and in turn C# did I finally find a language that I can say that I really enjoy and feel comfortable using.
Yes, everything gets tacked on and so many ways to make obscure errors that are difficult to find.
I'm not entirely sure I disbelieve the alleged hoax that Bjarne Stroustrup developed C++ to make programming difficult and hard to ensure developers salaries stayed high.

" Stroustrup: Well, one day, when I was sitting in my office, I thought of this little scheme, which would redress the balance a little. I thought 'I wonder what would happen, if there were a language so complicated, so difficult to learn, that nobody would ever be able to swamp the market with programmers? Actually, I got some of the ideas from X10, you know, X windows. That was such a b*tch of a graphics system, that it only just ran on those Sun 3/60 things. They had all the ingredients for what I wanted. A really ridiculously complex syntax, obscure functions, and pseudo-OO structure."

Full article here - jokes > Stroustrup C++ 'interview' (york.ac.uk)

 

Remove this Banner Ad