Login required to started new threads

Login required to post replies

Prev Next
Learning a programming language - what to pick
Quote | Reply
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
I haven't done any Java programming since 2010 (not very good at it then). It still seems rather popular. Oracle made it open source for compiling. Just checked and Eclipse is still available for free. https://www.eclipse.org/

Python and any or all of the C languages. Python is also open source.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
Python - it's basically pseudo-code that runs and you don't have to futz with compilers. JavaScript would be a close second, but it's a bit more of choose your own adventure in what direction you go in (browser, "server"/command line), where as Python is going to be good for focusing in on the fundamentals. https://learncodethehardway.org/python/ is what I've run some folks without a computer science background through - the beginning is likely going to be a bit repetitive if you have any previous CS exposure, but if it's been a few decades, worth going through.

There's a few .fit libraries in Python that are reasonable to work with and there's a lot of easy access to advance statistical/etc. packages. https://github.com/...oper/python-fitparse is the one I played around with before.

Edit: I recommend avoiding Java/C/C++ if you're doing this as a hobby - there's a lot more tool chain stuff (package management, compilers) and computer science fundamentals you need to understand to get anything up and running. LPTHW recommends using just a text editor, but if you want a more full featured environment to work in PyCharm community edition is great.
Last edited by: andrewjshults: Jan 4, 20 14:43
Quote Reply
Re: Learning a programming language - what to pick [andrewjshults] [ In reply to ]
Quote | Reply
^^^^This


I’m the CEO of a software company and have worked in the software industry for 30(+) yrs. The programming tools are so powerful these days.

I also studied CS in college a million yrs ago, FWIW. Start w Python.
Last edited by: JD21: Jan 4, 20 14:46
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
347CX wrote:
Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?
I first learned C in 1984 and have used it on a near-daily basis since then, mostly in low power portable (embedded) environments. I end up using C++, C#, Python, and script files on the desktop.

I would suggest that Python is likely to give you the best bang for the buck. I’ve played around a bit with Jupyter Notebook as an interactive browser based environment and that can be pretty handy.

Less is more.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
347CX wrote:
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?

Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)

"The great pleasure in life is doing what people say you cannot do."
Quote Reply
Re: Learning a programming language - what to pick [JD21] [ In reply to ]
Quote | Reply
JD21 wrote:

I also studied CS in college a million yrs ago, FWIW. Start w Python.


Python is great. But I'm starting to like JavaScript more and more if the application is ever going to touch the Web or a phone app. Node.js is really great for standalone or server-side applications, JavaScript has long been the glue for front-end design, JavasScript has a Python-like ever-growing library of packages for every conceivable purpose in science, engineering, and front-end design (e.g. the ubiquitous AngularJS).

You could be a "full-stack" programmer with just one language. That'd be harder in Python.
Last edited by: trail: Jan 4, 20 16:14
Quote Reply
Re: Learning a programming language - what to pick [andrewjshults] [ In reply to ]
Quote | Reply
Interesting - since my 4th grader is learning some python on her robotics team!
Quote Reply
Re: Learning a programming language - what to pick [jkca1] [ In reply to ]
Quote | Reply
jkca1 wrote:
347CX wrote:
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?

Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)

What languages would you put into the Artificial Programming Languages bucket? Something like CUDA (not really a language, but close)? Major ML projects are still being written in C++ (e.g., tensorflow - https://github.com/tensorflow/tensorflow ) so I'm not sure I'd throw C++ into the EOL bucket, just yet.
Quote Reply
Re: Learning a programming language - what to pick [trail] [ In reply to ]
Quote | Reply
My actual hands on experience was programming in FORTRAN on a VAX mainframe for the military. This is akin to cave hieroglyphics these days. I did do some C and C++ work back in the day. Our team would recommend starting w Python and go from there. We are heavily AI based so it gets pretty complex. These days, UI toolkits are so good you don’t really need to program a UI, just design with a UI tool.

You can’t really go wrong w Java or Python or even C++ but Python is easier IMHO so a good place to start.

ETA: depending on use case and desire, one could even just use the .Net framework and get a lot done.
Last edited by: JD21: Jan 4, 20 16:24
Quote Reply
Re: Learning a programming language - what to pick [andrewjshults] [ In reply to ]
Quote | Reply
andrewjshults wrote:

What languages would you put into the Artificial Programming Languages bucket? Something like CUDA (not really a language, but close)? Major ML projects are still being written in C++ (e.g., tensorflow - https://github.com/tensorflow/tensorflow ) so I'm not sure I'd throw C++ into the EOL bucket, just yet.


It depends on what you mean. If you mean writing the core algorithms and libraries of ML, then, yes, C/C++. But if you mean writing new applications that use AI/ML, Python is usually the way to go.

Since you mention Tensorflow, they have fantastic Python bindings, and the tutorials are in Python through Jupyter notebooks.

If you prefer Facebook to Google, PyTorch is really great as an alternative to Tensorflow. I'd say something like 90% of the people doing work with Torch use PyTorch.

This isn't just a learning/student thing. A lot of cutting-edge development is done with Python. It's just that much more time-efficient in development. If you find that Python isn't efficient enough for some task, then you write a C/C++ library for that thing.
Last edited by: trail: Jan 4, 20 16:33
Quote Reply
Re: Learning a programming language - what to pick [trail] [ In reply to ]
Quote | Reply
trail wrote:
JD21 wrote:

I also studied CS in college a million yrs ago, FWIW. Start w Python.


Python is great. But I'm starting to like JavaScript more and more if the application is ever going to touch the Web or a phone app. Node.js is really great for standalone or server-side applications, JavaScript has long been the glue for front-end design, JavasScript has a Python-like ever-growing library of packages for every conceivable purpose in science, engineering, and front-end design (e.g. the ubiquitous AngularJS).

You could be a "full-stack" programmer with just one language. That'd be harder in Python.

We do both (Python and JavaScript) at my work and I've trained folks with a background in neither (but other programming experience). My general impression is the delta between going from server side JS or Python to developing web apps (we use React) is relatively similar. Far more of the time for both folks is spent on learning React and general application (UI) practices. Knowing the JS syntax going in is helpful, but it's not a show stopper to come from a Python background.

It's a bit of a bias because you can get into a Python REPL out of the box on OS X and most Linux distros, but I've always liked that for getting someone with no CS experience started. We can have their first "program" running in a few minutes (vs futzing with package managers).
Quote Reply
Re: Learning a programming language - what to pick [ In reply to ]
Quote | Reply
Thanks for the helpful input so far! Seems like the consensus is Python, and I had wondered about that myself. I have a couple of raspberry pi's so I know those are ready for python programming (I use them for plex and video game emulation lol). Not really thinking career wise with this, I just like to geek out with stuff, and I'm 15 years into a public sector career that I'm increasingly comfortable remaining in until I retire.
Quote Reply
Re: Learning a programming language - what to pick [andrewjshults] [ In reply to ]
Quote | Reply
andrewjshults wrote:
jkca1 wrote:
347CX wrote:
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?


Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)


What languages would you put into the Artificial Programming Languages bucket? Something like CUDA (not really a language, but close)? Major ML projects are still being written in C++ (e.g., tensorflow - https://github.com/tensorflow/tensorflow ) so I'm not sure I'd throw C++ into the EOL bucket, just yet.

Great question. You could put them all in, but what's really going to be the next big thing(s)? I learned C++ in the mid 1980's, I wouldn't want my kids to spend much time learning it. Architectures for AI are in flux. Google uses the algorithm RankBrain and Knowledge Graph, but try finding any architectural material that explains the details. Python, R and Haskell have possibilities. The definitive AI language may not have been written yet, which is why we don't have true AI. Or perhaps it's the hardware...or lack of it. Cool questions to ponder but a bit nerdy.... ;)

"The great pleasure in life is doing what people say you cannot do."
Quote Reply
Re: Learning a programming language - what to pick [jkca1] [ In reply to ]
Quote | Reply
jkca1 wrote:
andrewjshults wrote:
jkca1 wrote:
347CX wrote:
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?


Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)


What languages would you put into the Artificial Programming Languages bucket? Something like CUDA (not really a language, but close)? Major ML projects are still being written in C++ (e.g., tensorflow - https://github.com/tensorflow/tensorflow ) so I'm not sure I'd throw C++ into the EOL bucket, just yet.


Great question. You could put them all in, but what's really going to be the next big thing(s)? I learned C++ in the mid 1980's, I wouldn't want my kids to spend much time learning it. Architectures for AI are in flux. Google uses the algorithm RankBrain and Knowledge Graph, but try finding any architectural material that explains the details. Python, R and Haskell have possibilities. The definitive AI language may not have been written yet, which is why we don't have true AI. Or perhaps it's the hardware...or lack of it. Cool questions to ponder but a bit nerdy.... ;)

I have a group coming from Europe in a couple of weeks to discuss robot implementation for a couple of processes. I will ask them what programming language they are using in the background of their AI software.
Quote Reply
Re: Learning a programming language - what to pick [shoff14] [ In reply to ]
Quote | Reply
shoff14 wrote:
jkca1 wrote:
andrewjshults wrote:
jkca1 wrote:
347CX wrote:
I kind of want to learn a programming language in 2020 and not really sure which to really go with. I took a Java course in 1999 and know html and have very basic Access/sql abilities so I wouldn’t be a complete novice. Not even sure what I would want to do with it, but I suppose maybe I could do something with cycling files, so whatever would make it easier to work with fit files and whatever would be cool.

So what to go with?


Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)


What languages would you put into the Artificial Programming Languages bucket? Something like CUDA (not really a language, but close)? Major ML projects are still being written in C++ (e.g., tensorflow - https://github.com/tensorflow/tensorflow ) so I'm not sure I'd throw C++ into the EOL bucket, just yet.


Great question. You could put them all in, but what's really going to be the next big thing(s)? I learned C++ in the mid 1980's, I wouldn't want my kids to spend much time learning it. Architectures for AI are in flux. Google uses the algorithm RankBrain and Knowledge Graph, but try finding any architectural material that explains the details. Python, R and Haskell have possibilities. The definitive AI language may not have been written yet, which is why we don't have true AI. Or perhaps it's the hardware...or lack of it. Cool questions to ponder but a bit nerdy.... ;)


I have a group coming from Europe in a couple of weeks to discuss robot implementation for a couple of processes. I will ask them what programming language they are using in the background of their AI software.

Very cool. I am looking forward to your reply.

"The great pleasure in life is doing what people say you cannot do."
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
Sounds like I was in a similar spot to you at the beginning of last year. I wanted to get a bit of development experience in part due to my career (I now manage software developers), but I was also just interested. I did some basic classes in a few languages in college 20 years ago, and then when I was a sysadmin I would use stuff like VBscript to complete batch tasks.

I started with Python, by using CodeAcademy and got some basics. I also worked on getting a couple of certs for AWS (Amazon's cloud service), which has helped give me platform. I'm using their free tier to build a website that so we can treat my niece like an Uber. For example, she can take one of my kids to soccer practice or out for ice cream. It's a way for her to make some gas money. It uses a bit of Python to complete backend tasks, and then runs on JavaScript using React. The free tier lasts for a year, and after that it should only be a few bucks a month to run it. I actually just got authentication working for my site a few minutes ago, pretty freaking sweet.

I think just learning how to code would be pretty difficult, so I would have an idea of what you want to build. It could be website, you could automate some things with your Raspberry PI, or something similar. Once you have a goal, you'll find tons of reasons to learn and then quickly apply what you learn. That will help you know which language(s) you will need to learn.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
If it’s not necessary for immediate employment learn COBOL or FORTRAN. Go old school.

My dad was an early developer of FORTRAN for the gov. And a little later cobol. It’s all essentially Swahili to me, but it always seems like it would be cool to know and understand if you had the time, aptitude and inclination.
Quote Reply
Re: Learning a programming language - what to pick [chriskal] [ In reply to ]
Quote | Reply
chriskal wrote:
If it’s not necessary for immediate employment learn COBOL or FORTRAN. Go old school.

My dad was an early developer of FORTRAN for the gov. And a little later cobol. It’s all essentially Swahili to me, but it always seems like it would be cool to know and understand if you had the time, aptitude and inclination.

As someone who had to do some fortran at various points for work and then decided to learn python for fun and a possible career change two years ago. DO NOT DO THIS (learn FORTRAN). It is about as useful as learning classical greek or latin, but less interesting;)

If you just want something fun to play around with, as others have suggested, Python. It's all free open source, and you can literally google the answer for any question you might have (stack overflow). Install Anaconda with python and jupyter and you will have an easy to use, free platform for learning.

I don't know if you have kids, but if you do, getting them set up using python in jupyter notebooks, with the PANDAS library (can do data processing in an Excel-like data structure) and matplotlib library (for charts or graphs) for any math, physics, statistics or STEM school work would give them a huge leg up. This seems like the future to me and what I hope high schools would be teaching (but somehow I doubt it).
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
There is no 'best' language, you don't miss out on anything since every language is different. What you miss out in C# because you're using C++ is nothing noteworthy when the same can be said the other way around. Personally I prefer to apply to professionals. Last time I cooperated with specialists in web development and design, go to website for more info. They helped me to create a website for business and find the right direction for my business development.
Last edited by: WilliG: Jan 16, 20 11:50
Quote Reply
Re: Learning a programming language - what to pick [jkca1] [ In reply to ]
Quote | Reply
jkca1 wrote:
Every once in a while you get a real life changing possibility and this is yours. I believe that traditional programming as we have known it for the last 50+ years is going the way of the dodo, to be replaced by Artificial Programming Languages. AI is going to create brand new skill sets that we have not even considered yet. Every company developing AI is using a custom set of tools with some of the older programming languages/DB's. Which company do you want to work for? What do you really want to do there? Find out what languages/skills their best programmers have, read articles by the CIO. Run some Google searches. Or be bolder still and ask the questions in person. It's your life. Grab it by the balls. You don't want to be in a dead end job maintaining C++ code do you? It's a safe job, but the boredom will kill you. Ask any mainframe guy ;)

What a bunch of unsubstantiated propaganda. AI definitely has its uses and can show some amazing results but it does not come anywhere close to covering all the problems software industry is generally working on. Someone's having wet dreams
Quote Reply
Re: Learning a programming language - what to pick [chriskal] [ In reply to ]
Quote | Reply
chriskal wrote:
If it’s not necessary for immediate employment learn COBOL or FORTRAN. Go old school.

My dad was an early developer of FORTRAN for the gov. And a little later cobol. It’s all essentially Swahili to me, but it always seems like it would be cool to know and understand if you had the time, aptitude and inclination.

This is a good way to get frustrated and stop learning about programming probably before you even get started. The setup processes for working in these languages isn't for beginners (e.g., we have one third party legacy app we have the COBOL source code for to do some maintenance/understand how bits of it work and we pay an annual license fee for the compiler that can actually compile the damn thing because there's not really one COBOL).

The Wikipedia page on COBOL gives a good summary of why the language itself isn't great to learn.
Quote:
COBOL has been criticized throughout its life, for its verbosity, design process, and poor support for structured programming. These weaknesses result in monolithic and, though intended to be English-like, not easily comprehensible and verbose programs.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
I consider my self very mechanically apt, and I struggle with the electronics/code side of things. However, in one of my university quarters I took a couple of classes on Python, and loved it. I still tinker with it to keep my (basic) skills fresh.

For ease of use and learning if, Python is my suggestion.
Quote Reply
Re: Learning a programming language - what to pick [andrewjshults] [ In reply to ]
Quote | Reply
andrewjshults wrote:
chriskal wrote:
If it’s not necessary for immediate employment learn COBOL or FORTRAN. Go old school.

My dad was an early developer of FORTRAN for the gov. And a little later cobol. It’s all essentially Swahili to me, but it always seems like it would be cool to know and understand if you had the time, aptitude and inclination.

This is a good way to get frustrated and stop learning about programming probably before you even get started. The setup processes for working in these languages isn't for beginners (e.g., we have one third party legacy app we have the COBOL source code for to do some maintenance/understand how bits of it work and we pay an annual license fee for the compiler that can actually compile the damn thing because there's not really one COBOL).

The Wikipedia page on COBOL gives a good summary of why the language itself isn't great to learn.
Quote:
COBOL has been criticized throughout its life, for its verbosity, design process, and poor support for structured programming. These weaknesses result in monolithic and, though intended to be English-like, not easily comprehensible and verbose programs.

Right. Similar to Latin in that it’s difficult to learn and doesn’t have a lot of direct and immediate modern uses. People still take Latin classes though. Learning esoteric things has value even if they lack practicality.

My original post was about half pink. I no more expect him to pick up COBOL than I expect him to source an Apple IIe off eBay and start programming BASIC. However, I do think it would be cool if he did.
Quote Reply
Re: Learning a programming language - what to pick [chriskal] [ In reply to ]
Quote | Reply
chriskal wrote:
Right. Similar to Latin in that it’s difficult to learn and doesn’t have a lot of direct and immediate modern uses. People still take Latin classes though. Learning esoteric things has value even if they lack practicality.

My original post was about half pink. I no more expect him to pick up COBOL than I expect him to source an Apple IIe off eBay and start programming BASIC. However, I do think it would be cool if he did.

Latin at least has the advantage of being the root of most modern Western languages. COBOL was effectively the end of that linage in terms of language design. Turned out that global mutable state and GOTOs were pretty unmaintainable programming practices. Later versions attempted to correct that, but legacy.

We're in agreement that an Apple IIe with BASIC sounds a lot more fun (and pretty batteries included, since that was still pretty strongly in the hobbyist era of personal computers).
Quote Reply

Prev Next