Login required to started new threads

Login required to post replies

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
Re: Learning a programming language - what to pick [kostya416] [ In reply to ]
Quote | Reply
kostya416 wrote:
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

Unsubstantiated? You need to do some reading. Innovators like Elon Musk and Bill Gates haven spoken and written on the AI issue for years. You remind me of a blacksmith when he first saw a car, pure denial. True AI will change every way we live. We're in the embryonic stages of development. Just like we were when the first PC's hit the market, not too long ago. Show me an industry that has not changed due to computers and it will probably require a minimum education and a pool of cheap labor.

"The object of teaching a child is to enable the child to get along without the teacher. We need to educate our children for their future, not our past." Arthur C. Clarke.

"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:
...You remind me of a blacksmith when he first saw a car, pure denial...

I develop software for living and familiar with AI. If it helps you I coded my first perceptron (hope you know what that is) some 30 years ago. I just do not run around like a headless chicken repeating someone else's sales pitch,
Quote Reply
Re: Learning a programming language - what to pick [kostya416] [ In reply to ]
Quote | Reply
kostya416 wrote:
jkca1 wrote:
...You remind me of a blacksmith when he first saw a car, pure denial...


I develop software for living and familiar with AI. If it helps you I coded my first perceptron (hope you know what that is) some 30 years ago. I just do not run around like a headless chicken repeating someone else's sales pitch,

I am not sure why you feel AI is a sales pitch, but I believe that eventually you will be proven wrong. You have to remember that the initial idea for the Internet "is credited to Leonard Kleinrock after he published his first paper entitled "Information Flow in Large Communication Nets" on May 31, 1961."

I am sure there were many people back then and later still, that felt the way you do about AI.

"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
Another vote for python, but I would also add to not just jump in and start trying things. You can do that, and make a lot of progress, but your projects will be disorganized and poorly conceived and you’ll spend a lot of time doing things you don’t need to do. I’d definitely recommend running through a basic text like “learn python the hard way”. If you have any coding experience you can do it very quickly and it will set you up with a solid foundation to work with more complex packages and use them efficiently. Wish I’d done that through grad school - so much unnecessary pain!
Quote Reply
Re: Learning a programming language - what to pick [jkca1] [ In reply to ]
Quote | Reply
jkca1 wrote:
..I am not sure why you feel AI is a sales pitch...
AI is not. You are
Quote Reply
Re: Learning a programming language - what to pick [kostya416] [ In reply to ]
Quote | Reply
kostya416 wrote:
jkca1 wrote:
..I am not sure why you feel AI is a sales pitch...

AI is not. You are

Sigh.

"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:

Unsubstantiated? You need to do some reading. Innovators like Elon Musk and Bill Gates haven spoken and written on the AI issue for years. You remind me of a blacksmith when he first saw a car, pure denial. True AI will change every way we live. We're in the embryonic stages of development. Just like we were when the first PC's hit the market, not too long ago. Show me an industry that has not changed due to computers and it will probably require a minimum education and a pool of cheap labor.

"The object of teaching a child is to enable the child to get along without the teacher. We need to educate our children for their future, not our past." Arthur C. Clarke.

I think you may be misinterpreting the hype. As I interpret Musk's statements on AI, true AI is something to be fearful of because it is largely unpredictable. Once it is established there is absolutely no basis to believe that it can be controllable by humans. The premise of Terminator is AI run amuck, which although fictional in the movie is completely plausible. I predict within the next 10 years (well before we can achieve AI), there will be a major cyber attack or disruption based on the internet of things and interconnection that will cause a huge paradigm shift in thinking about the benefit of networking everything together as compared to the possible bad outcomes. Up until now we have seem a predominant benefit, however because of the overall power of such systems, huge catastrophe is possible, it is only a matter of time. Once we see the consequences of this event, and put that together with AI being an even greater power I think we logically determine the AI singularity must be prevented because it is too dangerous. This goes way beyond the threshold into the nuclear era we have been living in for the past 70 years. Think about how Hiroshima and Nagasaki changed the world, we have not had the equivalent event for networks/computers. Black Friday and the flash crash are just minor glitches that hint at what could happen.

I think an entirely plausible scenario is for practical ethical reasons we decide AI cannot be allowed because it is too much of a Pandora's box. So it is hype in the sense that there is a strong possibility that even if it is possible we never use it.

AI is basically the equivalent of a god-like intelligence. Even though it would be based on human technology, at some level following it would be no different than a religion from a philosophical point of view. In this respect it's a weird paradox.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
One more vote for python from another math/computer science nerd (turned biomedical informaticist). My initial training was C/C++ which is only doable if you understand computer architecture and some OS, which is why the old school CS folks would typically do Architecture (Usually the brick written by Tanenbaum) followed by Unix and C/C++. It’s painful somewhat but fun.

With python you can do stuff fast and ignore how things are run in the background, ignore compiler stuff, don’t have to worry about memory management etc.

I’d suggest Golang as an alternative if you want to move to C/C++ later.
Quote Reply
Re: Learning a programming language - what to pick [tri_yoda] [ In reply to ]
Quote | Reply
The funny thing is that when people say AI these days, they’re really referring to a very small subset of AI (typically machine learning which encompasses both reinforcement learning and deep learning).

I do this for a living. Applied to biomedical questions. And we are still pretty far from terminator. But we are doing some pretty cool stuff. Google health published in nature on Wednesday a study where their DL tool has better detection of breast cancer than radiologists (in reality, the bar was somewhat low, but still). It has fewer false positives and negatives too.

But all in all we are far from passing the Turing test. And despite Peter Norvig being at google all the efforts are on deep learning and not really broad AI anymore.

There is definitely some hype though.
Quote Reply
Post deleted by spudone [ In reply to ]
Re: Learning a programming language - what to pick [ In reply to ]
Quote | Reply
Just a quick update on this. I've been messing around with Python as recommended by many. With the long weekend and my wife out of town and my son being sick I got to messing around with Strava API and Python, because who cares about the basics when you can just dive in and start messing stuff up, right?? lol

Fortunately there's stravalib which made the work "easy" and over the course of a couple of days I figured out how to get an access token to get my data through API and pull multiple streams of data into individual files. My next challenge is fixing the json files with the ride data (time, watts, and heartrate) to properly format so I can graph data. If anyone has any tips I'll take them!
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
347CX wrote:
Just a quick update on this. I've been messing around with Python as recommended by many. With the long weekend and my wife out of town and my son being sick I got to messing around with Strava API and Python, because who cares about the basics when you can just dive in and start messing stuff up, right?? lol

Fortunately there's stravalib which made the work "easy" and over the course of a couple of days I figured out how to get an access token to get my data through API and pull multiple streams of data into individual files. My next challenge is fixing the json files with the ride data (time, watts, and heartrate) to properly format so I can graph data. If anyone has any tips I'll take them!

I'd love to see your code on that. I hadn't thought about playing with Strava, but that could be a fun project. Did you put it up in Github or another repo that is available to the public?
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
347CX wrote:
Just a quick update on this. I've been messing around with Python as recommended by many. With the long weekend and my wife out of town and my son being sick I got to messing around with Strava API and Python, because who cares about the basics when you can just dive in and start messing stuff up, right?? lol

Fortunately there's stravalib which made the work "easy" and over the course of a couple of days I figured out how to get an access token to get my data through API and pull multiple streams of data into individual files. My next challenge is fixing the json files with the ride data (time, watts, and heartrate) to properly format so I can graph data. If anyone has any tips I'll take them!

I'd suggest using pandas for getting the data into a dataframe and then using your preferred plotting library. Pandas is well worth learning if you ever want to get into the data science side of things. For plotting, I personally prefer plotly because I can make interactive javascript plots with it while only needing to program in python. That said, matplotlib (I'd suggest also getting seaborn), bokeh, and pyqtgraph are also good.
Quote Reply
Re: Learning a programming language - what to pick [riotgear] [ In reply to ]
Quote | Reply
Yeah, I've got pandas and put the data stream into a dataframe. The snag I'm encountering is that the stream is being pulled as a dictionary first, so brief example {"time":{"0"[0, 1, 2]}, "watts":{"0"[164, 156, 157]} }, and the issue is that all the time, watts, and heartrate data are being put into individual cells in excel/csv. So columns time, watts, heartrate, and one row 0 (hope that makes sense). If the structure could be {"time":[0,1,2], "watts":[164, 156, 157]} it would deliver the output in a way that can be used for plotting. So that's my newbie hurdle at the moment lol

I haven't gotten my stuff on github, but stravalib is located here https://github.com/hozn/stravalib and has a lot of documentation to it
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
347CX wrote:
Yeah, I've got pandas and put the data stream into a dataframe. The snag I'm encountering is that the stream is being pulled as a dictionary first, so brief example {"time":{"0"[0, 1, 2]}, "watts":{"0"[164, 156, 157]} }, and the issue is that all the time, watts, and heartrate data are being put into individual cells in excel/csv. So columns time, watts, heartrate, and one row 0 (hope that makes sense). If the structure could be {"time":[0,1,2], "watts":[164, 156, 157]} it would deliver the output in a way that can be used for plotting. So that's my newbie hurdle at the moment lol

I haven't gotten my stuff on github, but stravalib is located here https://github.com/hozn/stravalib and has a lot of documentation to it


It's hard to tell what the dictionary looks like. Based on what you wrote, my first impression would be to read the dictionary as a string and strip out a few things like the '{"0"' so that would be something like a str.replace('{"0"',""). You'd have to strip up out the trailing brace as well. str.replace("]}","]"). That would leave the data as a list which ought to be easier to deal with.

That said, there's probably a cleaner way to do this rather than dealing with replacing characters in a string.
Last edited by: riotgear: Jan 21, 20 8:42
Quote Reply
Re: Learning a programming language - what to pick [riotgear] [ In reply to ]
Quote | Reply
I think I figured something out, I'm sure it's inelegant though lol Basically I had the individual data stream dictionaries sent to different dataframes, renamed keys and columns and merged the dataframes into a merged dataframe then send to csv.

Gonna try some plotting and see how it goes!
Quote Reply
Re: Learning a programming language - what to pick [riotgear] [ In reply to ]
Quote | Reply
riotgear wrote:

That said, there's probably a cleaner way to do this rather than dealing with replacing characters in a string.

Straying dangerously close to https://blog.codinghorror.com/...u-have-two-problems/ ☺️
Quote Reply
Re: Learning a programming language - what to pick [ In reply to ]
Quote | Reply
Just wanted to update, hopefully someone finds this interesting! I'm continuing to learn, I've migrated a bit more to using fit files using fitparse rather than the strava API for now. I'm doing more in Django, really going in with developing a PMC site, nothing like reinventing the wheel to do something I already have free access to in a bunch of places! lol But it's a good project based approach to learning is how I figure it.

I've got a couple of challenges I'm trying to work on: one is writing fitfiles to a model. I can save the actual file to the database (it generates a link to it), and I can even parse the file upon upload and write some summary stats (IF, TSS, NP) to another model, but when writing the files contents to the database, the only option I currently have working writes each sample to its own object in the model, when (in my mind) the ride itself should be the object with all the data inside the object. There's definitely something I'm missing in trying to get the fit file data (passed into a Pandas dataframe) formatted in such a way that makes this work.

I'm also working with listview and detailview in Django so I'm trying to get it so the detailview will bring up ride analysis. I think I actually have enough to go on that I could do a PMC since I do have the other model with summary stats, but I'm trying to work out accessing individual ride files for detailed analysis.

Anyhow, I started a public github and trying to get folks to contribute code (and include some myself) to help new folks put together their own thing. If anyone wants to contribute, feel free! https://github.com/pgp80/cycling-coders
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
Here's what I would do... Parse .fit files as JSON and store them to a document database such as MongoDB. Look it up :)

347CX wrote:
Just wanted to update, hopefully someone finds this interesting! I'm continuing to learn, I've migrated a bit more to using fit files using fitparse rather than the strava API for now. I'm doing more in Django, really going in with developing a PMC site, nothing like reinventing the wheel to do something I already have free access to in a bunch of places! lol But it's a good project based approach to learning is how I figure it.
I've got a couple of challenges I'm trying to work on: one is writing fitfiles to a model. I can save the actual file to the database (it generates a link to it), and I can even parse the file upon upload and write some summary stats (IF, TSS, NP) to another model, but when writing the files contents to the database, the only option I currently have working writes each sample to its own object in the model, when (in my mind) the ride itself should be the object with all the data inside the object. There's definitely something I'm missing in trying to get the fit file data (passed into a Pandas dataframe) formatted in such a way that makes this work.

I'm also working with listview and detailview in Django so I'm trying to get it so the detailview will bring up ride analysis. I think I actually have enough to go on that I could do a PMC since I do have the other model with summary stats, but I'm trying to work out accessing individual ride files for detailed analysis.

Anyhow, I started a public github and trying to get folks to contribute code (and include some myself) to help new folks put together their own thing. If anyone wants to contribute, feel free! https://github.com/pgp80/cycling-coders

What's your CdA?
Quote Reply
Re: Learning a programming language - what to pick [G. Belson] [ In reply to ]
Quote | Reply
I'll look into it, I have figured out stuff (I'm just running the fitparse code in a function under detailview in Django), but I'm sure there are much better ways to do what I'm doing, I'm just bumbling my way through, but it's working! So now I can click on a ride from the listview and get a graph and summary statistics in the detail window (combining models in one view, how expert! lol). I'm adding a power duration curve now. I'm having fun, for sure!
Quote Reply
Re: Learning a programming language - what to pick [jkca1] [ In reply to ]
Quote | Reply
jkca1 wrote:
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.

Great thread. One thing to consider, depending on your age/what you want to do: "Expert" C++ are becoming few & far between, especially in fly-over country, and there are a LOT of companies still using "solid" legacy platforms straight out of the late 1990s. My wife works for one of them--publicly traded, reasonably high profile, but still using archaic platforms/technology "because that is how they have always done it". As the generation that knew/grew C++ goes away, there is going to be a serious need for experts, especially in the financial services industry (looking at you local/regional banks & CUs).

____________
"There are two novels that can change a bookish fourteen-year old's life: The Lord of the Rings and Atlas Shrugged. One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes, leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world. The other, of course, involves orcs." John Rogers
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
If you can do Python and SQL and have some working knowledge of AWS or GCP - you should have no shortage of work.

Next races on the schedule: none at the moment
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
How is it going for you now? Are you a pro already? I've started with the python so many times and always giving up for some reason. Laziness? Any tips?
Quote Reply
Re: Learning a programming language - what to pick [MitchMcCrown] [ In reply to ]
Quote | Reply
Just replying to the last post...

I learned PASCAL on a mainframe in the 80's. Later I learned C++ (Borland's version). For the last 20 years all I've used is MS Visual Basic for applications in Excel.

Unless you plan to work in the profession Visual Basic is all you need in business.

"...the street finds its own uses for things"
Quote Reply
Re: Learning a programming language - what to pick [AutomaticJack] [ In reply to ]
Quote | Reply
AutomaticJack wrote:
Just replying to the last post...

I learned PASCAL on a mainframe in the 80's. Later I learned C++ (Borland's version). For the last 20 years all I've used is MS Visual Basic for applications in Excel.

Unless you plan to work in the profession Visual Basic is all you need in business.

I learned PASCAL on a mainframe in the 70s. Before that it was PL/C (on punch cards), and before that it was BASIC (on paper tape). Then programmed professionally using HP Assembly language, BASIC, compiled BASIC, C, C++, Objective-C, SmallTalk, Java, Perl, and Python. Not listing scripting languages like JavaScript.

I'm now retired.

----------------------------------
"Go yell at an M&M"
Quote Reply
Re: Learning a programming language - what to pick [klehner] [ In reply to ]
Quote | Reply
klehner wrote:
AutomaticJack wrote:
Just replying to the last post...

I learned PASCAL on a mainframe in the 80's. Later I learned C++ (Borland's version). For the last 20 years all I've used is MS Visual Basic for applications in Excel.

Unless you plan to work in the profession Visual Basic is all you need in business.

I learned PASCAL on a mainframe in the 70s. Before that it was PL/C (on punch cards), and before that it was BASIC (on paper tape). Then programmed professionally using HP Assembly language, BASIC, compiled BASIC, C, C++, Objective-C, SmallTalk, Java, Perl, and Python. Not listing scripting languages like JavaScript.

I'm now retired.

R and Python as well as SQL are really necessary in finance
Quote Reply
Re: Learning a programming language - what to pick [MitchMcCrown] [ In reply to ]
Quote | Reply
well, I'm not pro for sure, but I've had fun with it, mainly using it with Django to develop my own personal training peaks lol I've got my performance management chart and I can either import a fit file or directly from strava and then pull up a ride detail. Not super fancy or polished, and it doesn't do anything that something like golden cheetah doesn't already do, but it's fun nonetheless. I've got the site running on an apache server I have on my raspberry pi so I can access my stuff from anywhere

I've actually been making headway into another bike related Django/python project to help clubs organize rides that I started this week. I've got it set up that someone can upload a gpx file and enter ride details and it'll display the route map, elevation profile, and ride details that a club member can then indicate attendance. I've got the main functions running, I'm being somewhat ambitious in creating multi-club support and allow a club admin to edit club members. I think it'll be pretty cool and useful once it's running and maybe an alternative to the somewhat disjointed approaches my clubs take with organizing group rides.
Quote Reply
Re: Learning a programming language - what to pick [AutomaticJack] [ In reply to ]
Quote | Reply
AutomaticJack wrote:
Just replying to the last post...

I learned PASCAL on a mainframe in the 80's. Later I learned C++ (Borland's version). For the last 20 years all I've used is MS Visual Basic for applications in Excel.

Unless you plan to work in the profession Visual Basic is all you need in business.

advice from 1998? business savy people on Mac or chrome books.... how they going to program?
Quote Reply
Re: Learning a programming language - what to pick [synthetic] [ In reply to ]
Quote | Reply
No idea what you are talking about.

I use MS 365 Enterprise Solutions as the Plant Manager. Alt-F11 opens MS Visual Basic for Applications in Excel. I just did it an hour ago to edit some code.

"...the street finds its own uses for things"
Quote Reply
Re: Learning a programming language - what to pick [AutomaticJack] [ In reply to ]
Quote | Reply
AutomaticJack wrote:
No idea what you are talking about.

I use MS 365 Enterprise Solutions as the Plant Manager. Alt-F11 opens MS Visual Basic for Applications in Excel. I just did it an hour ago to edit some code.

The question isn't whether you can do it in a specific language. The question is what is the right tool for each problem you want to tackle. Yes, you can do a lot of stuff with VB, regardless of whether it's business or not. But, for instance if you were to do anything with very large heterogeneous data sets, VB sucks. Pretty much anyone trained in computer science will learn a couple of languages, usually different programming paradigms, so that they can use the right tools when need be. Pretty much what klehner was hinting at.
Quote Reply
Re: Learning a programming language - what to pick [AutomaticJack] [ In reply to ]
Quote | Reply
AutomaticJack wrote:
No idea what you are talking about.

I use MS 365 Enterprise Solutions as the Plant Manager. Alt-F11 opens MS Visual Basic for Applications in Excel. I just did it an hour ago to edit some code.

You are stuck to one platform not cross compatible with others . Your app will not work for someone using a Mac. (It maybe can with virtualization, which makes it a PITA)
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
check out udemy.com, and look through the web dev and programming languages and find something that appeals to you. Udemy has many full classes (check for date of creation/last update) for $20 or or so, or less.
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
Good thread. I'm also thinking about changing occupation and web design always seemed to be a great choice for me, but with all this daily routine (study, work, family, etc.) I put this idea aside. Now when the situation in the world changed and impacted our way of life, I think that it is high time to give it a try. I've already started following several blogs for web designers and developers, but I understand that there is a long way ahead and much stuff to learn, but I'm ready. Thanks for sharing your experience and recommendations, I appreciate it.
Last edited by: BessYa: Oct 16, 21 12:34
Quote Reply
Re: Learning a programming language - what to pick [347CX] [ In reply to ]
Quote | Reply
it depends on your needs. I study Python in college. I combine work and study, it's not so easy but I try to avoid procrastination. Plus I found GPALabs with pro writers help.I think it’s ok to use a little help of writing services to save time. They helped me hundreds of times.
Last edited by: WilliG: Nov 12, 21 3:24
Quote Reply
Re: Learning a programming language - what to pick [LorenzoP] [ In reply to ]
Quote | Reply
Anyone familiar with Google Grasshopper for learning JavaScript?

My daughter is using it in her middle school comp sci class and really likes it.

She’s done the first two modules.

It’s totally free.
Quote Reply