• Post Reply Bookmark Topic Watch Topic
  • New Topic
permaculture forums growies critters building homesteading energy monies kitchen purity ungarbage community wilderness fiber arts art permaculture artisans regional education skip experiences global resources cider press projects digital market permies.com pie forums private forums all forums
this forum made possible by our volunteer staff, including ...
master stewards:
  • Carla Burke
  • Nancy Reading
  • John F Dean
  • r ranson
  • Jay Angler
  • paul wheaton
stewards:
  • Pearl Sutton
  • Leigh Tate
  • Devaka Cooray
master gardeners:
  • Christopher Weeks
  • Timothy Norton
gardeners:
  • thomas rubino
  • Matt McSpadden
  • Jeremy VanGelder

What computer language to learn first?

 
master pollinator
Posts: 4992
Location: Due to winter mortality, I stubbornly state, zone 7a Tennessee
2135
6
forest garden foraging books food preservation cooking fiber arts bee medical herbs
  • Likes 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Well, that pretty much covers it. Does the language to choose depend on what the student is interested in?
 
pollinator
Posts: 701
Location: Sierra Nevada Foothills, Zone 7b
154
dog forest garden fish fungi trees hunting books food preservation building wood heat homestead
  • Likes 11
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
As the proud holder of an associates degree in computer science...

I'd say Python. It always seems to be more fun than others. We learned Java and C in school. C is cool if you are making actual things (like embedded systems) but it always ends up pissing me off eventually. In fact, I actually hate computer programing but when I get the itch to play around I choose Python. Its fun to put 124349**30821 into IDLE just to see really big numbers...
 
pollinator
Posts: 365
Location: Hamburg, Germany
120
  • Likes 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Joylynn Hardesty wrote:Well, that pretty much covers it. Does the language to choose depend on what the student is interested in?



Kind of, yes.  If the student is ACTUALLY interested in, say, marine biology, there's probably some special language that researchers/mappers/statisticians/etc. use and it would be good to be familiar with that.

The fastest way to start writing code and actually get something that works is to do it in Python.  And as someone who has worked for 20+ years in IT w/o a CS degree and w/an allergy to real programming, it's enough to get along in support roles.

But for getting a programming job?  Being good in Java will get you in to most web development jobs.  Being good in C/C++ will let you work on native code.  Both will make you good money.

Languages come and go, all very trendy.  The 3 listed above have lasted a long time and if you know them you can pretty easily pick up the trendy ones.
 
gardener
Posts: 814
Location: Durham, NC
338
hugelkultur gear urban cooking building writing woodworking
  • Likes 8
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have found very little excuse to use any other language over Python in my 25 years as a software developer.  

It is certainly true that some languages are faster for certain things. For example, if you are processing millions of records, maybe use C over Python.  If you are doing a dedicated Windows desktop application that will never, ever, and you are absolutely sure never ever will be used on another platform, maybe .NET.  If you are doing mainframe programming, COBOL.  

Otherwise, Python's readability, portability, and flexibility trump almost any other concern.  I've done plenty of intensive bioinformatics dataset processing in Python.  PANDAS gives you a wealth of data processing options.  It's excellent for web scripting, dev ops, game development...

I've had many people over the years tell me how other languages are superior for blah-blah-blah because blah-blah-blah and by the end of the conversation I hand them the fully functional program I wrote in Python while they were talking. :)
 
Joylynn Hardesty
master pollinator
Posts: 4992
Location: Due to winter mortality, I stubbornly state, zone 7a Tennessee
2135
6
forest garden foraging books food preservation cooking fiber arts bee medical herbs
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Umm... What the kid wants to do... Maybe web design, coding. Making two-dimensional games. Hobby stuff. What The Dad wants him to do... Have a basic language to start with if he ends up going in this direction for a career.

He has done some coding stuff at Khan Academy's programming courses. If I understand correctly, what he has done is programming within a program. He has not completed everything available on Khan. I heard about Code Academy from student discussions with my kid on Khan. Webucator has self-paced courses. Are these quality places?

Where else can languages be learned?
 
Morfydd St. Clair
pollinator
Posts: 365
Location: Hamburg, Germany
120
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Joylynn Hardesty wrote:Umm... What the kid wants to do... Maybe web design, coding. Making two-dimensional games. Hobby stuff. What The Dad wants him to do... Have a basic language to start with if he ends up going in this direction for a career.

He has done some coding stuff at Khan Academy's programming courses. If I understand correctly, what he has done is programming within a program. He has not completed everything available on Khan. I heard about Code Academy from student discussions with my kid on Khan. Webucator has self-paced courses. Are these quality places?

Where else can languages be learned?



Khan Academy has a good rep.  I'm not familiar with the others.  C Gillis has a personal recommendation here:  https://permies.com/t/40/141091/permaculture-fragmented-game-changing-crisis#1106938

My company pays for O'Reilly and LinkedIn (which used to be Lynda.com, iirc) and of course all the O'Reilly books are bibles for the specific topics.  

What about a community college?  Yes, you're paying $ but you get personal instruction and a few credits that could be transferable.  And in my procrastinating case, you have the stick of failing to keep you going even when it's dumb and boring.  I assume everything's being taught remotely right now, which should be fine.
 
pollinator
Posts: 439
174
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In my previous life as a gubmint scientist, I was responsible for data acquisition/transport from sensor packages located at remote observatories. We used C/C++ for the instrument and satellite/internet interfaces, and Java (later Python) for the receiving/distribution interfaces at the central collection point.

Most of us also kept a personal-use scripting language around for things like cobbling up a kwik-n-dirty way to extract historical 3rd-party data from weirdly-formatted ancient files and rewriting into a useable form. The old "swiss army chainsaw" PERL was a favorite.
 
Morfydd St. Clair
pollinator
Posts: 365
Location: Hamburg, Germany
120
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Rob Lineberger wrote:I have found very little excuse to use any other language over Python in my 25 years as a software developer.  

It is certainly true that some languages are faster for certain things. For example, if you are processing millions of records, maybe use C over Python.  If you are doing a dedicated Windows desktop application that will never, ever, and you are absolutely sure never ever will be used on another platform, maybe .NET.  If you are doing mainframe programming, COBOL.  

Otherwise, Python's readability, portability, and flexibility trump almost any other concern.  I've done plenty of intensive bioinformatics dataset processing in Python.  PANDAS gives you a wealth of data processing options.  It's excellent for web scripting, dev ops, game development...

I've had many people over the years tell me how other languages are superior for blah-blah-blah because blah-blah-blah and by the end of the conversation I hand them the fully functional program I wrote in Python while they were talking. :)



Meh, my company has 30+ years of application code in C/C++, and 10+ years of Web backend code in Java.  I write supporting code in Python and whatever else I inherit from other teams, but I guarantee new programmers (as opposed to DevOps or whatever) won't get hired here without C or Java.

That's our "excuse to use any other language over Python". ;)  That and the processing of billions of records AND the dedicated Windows/OSX desktop applications.
 
pollinator
Posts: 117
Location: 6.b.
31
forest garden chicken cooking
  • Likes 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Depends what you want to do with it. I'd suggest MATLAB (very similar to Python) for lots of different engineering fields as it's pretty standard. PYTHON is also a strong choice. C++ is very useful for programming micro-controllers if you have any interest in going the Arduino or Raspberry Pi route.
 
Dc Stewart
pollinator
Posts: 439
174
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

I'd suggest MATLAB


Good call! I forgot to mention that, in my final years before retirement, the next generation of sensor hardware was to be MATLAB-driven. At the time (2015-2017) MATLAB experts were in high demand -- our own resident expert got poached in mid-project by a "rival" govt department offering a lucrative compensation upgrade.

When it comes to selecting methods, the Elbonians are the best source of inspiration.
dt960223dhc0.gif
[Thumbnail for dt960223dhc0.gif]
 
Rob Lineberger
gardener
Posts: 814
Location: Durham, NC
338
hugelkultur gear urban cooking building writing woodworking
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Morfydd St. Clair wrote:

Meh, my company has 30+ years of application code in C/C++, and 10+ years of Web backend code in Java.  I write supporting code in Python and whatever else I inherit from other teams, but I guarantee new programmers (as opposed to DevOps or whatever) won't get hired here without C or Java.

That's our "excuse to use any other language over Python". ;)  That and the processing of billions of records AND the dedicated Windows/OSX desktop applications.



Hey Morfydd, here is the fully functional program I wrote in Python while you were talking.  :)
 
gardener
Posts: 819
Location: Ontario - Currently in Zone 4b
532
dog foraging trees tiny house books bike bee
  • Likes 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I use python. Free, open source, good online help documentation and, more importantly, what a program i use for work is written to use for automating tasks.  Matlab is awesome for engineering and science but not exactly a versatile langauge through it teaches you lots of the skills. Unfortunately the licence is bloody expensive, but there is a knock off open source version I believe. R is what lots of statistics and graphing stuff in journal papers is done with.

Honestly, unpopular opinion - any language he enjoys if he isnt being paid to do it. I think programming is kinda like reading. Once you can read in English, you can pick up reading in French or Italian easily enough because you know how letters and punctuation works and just need to lean a few different rules. My university taught introductory programming with a useless unheard of language. Useless in real life, BUT we programmed robots in class and had a blast, and the fun of it made me more inclined to learn more. We also did Matlab, and some python, and something else that I forget now...  I don't program much recently - but I have enough background to bash my way inelegantly through small tasks in other languages, and know what to google/how to think when i encounter one.

I find a basic knowledge of SQL queries useful too.
 
gardener
Posts: 521
Location: Rocky Mountains, USA
307
homeschooling forest garden building writing woodworking homestead
  • Likes 7
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
In my opinion, these are the top three options:
* C++ (and variants) is the general standard for native applications.  An excellent choice if the student wants to make a career of programming.
* Python is a good way to get up and going fast.  This is a good choice if the student wants to achieve some goal rather than coding itself.  For example, machine learning/artificial intelligence, or mathematical processing.
* Neither of the above has decent graphical user interface options out of the box.  If the student wants to write pretty, interactive applications, I'd say JavaScript is a more worthwhile option.

That being said (and it pains me to say this because I have a personal place in my heart the first two) JavaScript seems to be the most marketable skill.  Between React or Angular on the ui side and NodeJS on the server, this seems to be the way the major industry players (Amazon, Google Facebook, etc) are headed.
 
Rob Lineberger
gardener
Posts: 814
Location: Durham, NC
338
hugelkultur gear urban cooking building writing woodworking
  • Likes 6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Catie George wrote:

Honestly, unpopular opinion - any language he enjoys if he isnt being paid to do it.



Not unpopular at all!  It's a great point.  Virtually any language will teach you sane design patterns like variables, loops, functions, etc.  

Except for PERL of course.
 
pollinator
Posts: 974
Location: Greybull WY north central WY zone 4 bordering on 3
286
hugelkultur trees solar woodworking composting homestead
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
That can be very much application specific.  Say he wants to build robots or control systems or 3D printer etc.  Each area has most of its code in specific languages.  So if he is looking at any of these I would suggest studying up on the primary languages that are used by what he wants to do.  The same thing applies if he wants to do apps or program development.  You will typically have a wider range of options but in the end what he wants to do will eventually rule.

Learning style matters too.  C++ is overwhelming for most people to learn on their own for example.  Some people thrive on that kind of challenge.  Personally for the more average student I would choose a language that can start out in an interpreted environment and move to a compiled environment at a later date.  There is typically less set up needed to get up and running in interpreted languages and it makes getting started easier.

Love Khan.  They are a great way to learn.  A bit slow for an adult in a hurry but good place for kids to learn.  The only problem I ever had with them was a decade ago when my slow internet would not let me work fast enough on grading other peoples work to suit the system and since I was "refusing"(getting timeout errors) to grade the work it wouldn't let me continue.  All because I was super rural and my internet service was poor.  If he is having trouble find some sort of online geeks group for help.  The online communities are typically amazingly helpful.
 
Morfydd St. Clair
pollinator
Posts: 365
Location: Hamburg, Germany
120
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Rob Lineberger wrote:

Morfydd St. Clair wrote:

Meh, my company has 30+ years of application code in C/C++, and 10+ years of Web backend code in Java.  I write supporting code in Python and whatever else I inherit from other teams, but I guarantee new programmers (as opposed to DevOps or whatever) won't get hired here without C or Java.

That's our "excuse to use any other language over Python". ;)  That and the processing of billions of records AND the dedicated Windows/OSX desktop applications.



Hey Morfydd, here is the fully functional program I wrote in Python while you were talking.  :)



I knew you were going to say that. :)

But my point really was that most programmers for large firms don't choose what language to program in.  It's chosen by management for good (millions of man-hours-worth of working, well-tested legacy code!) or terrible (my 12-year-old kid (or worse, the new MBA consultant) says all the cool startups are using this!) reasons.  Know one or more of the big 3, which we've all kind of agreed is Java, C variants, and Python, or the good suggestion of Javascript, and you'll always have a job.  Learn all the wacky other languages after that if you want a specific job.
 
Posts: 109
Location: California Zone 10b / Wyoming Zone 3b
10
building woodworking homestead
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I have a computer science degree, worked in consulting for years and now work at a major tech company as a Data Science manager.  Here is the order I learned: C, Java, Assembler, Basic, SQL (not really a programming language), C#

If I just wanted to learn a language that would give me job prospects and versatility I would do Python. It has huge amounts of flexibility and you can work In wide variety of applications and fields.  Python and R are also the core of all data science right now and if I was going to learn another language it would be Python.

If you just want to know a little programming to supplement another degree Basic is the place to start.  I have seen massive investment houses run on Basic code built into excel and the modern Microsoft version of basic is essentially an object oriented language that covers a lot of the concepts more advanced languages use.

If your into math to want to do really graphic intensive work then c -> c++ is not a bad place to start but it’s is fairly targeted.

Knowledge of Assembler makes better programmers but it has very little use in the market outside of compiler design.  It’s my favorite language and one of the most fun to learn (IMO) but really not the place to start.

I would stay away from Java.  Limited use and bit harder to move to other languages.
 
Posts: 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Hi everyone, I am new here. I am learning JS, it is my first language and I hope I've made correct decision.
 
Joylynn Hardesty
master pollinator
Posts: 4992
Location: Due to winter mortality, I stubbornly state, zone 7a Tennessee
2135
6
forest garden foraging books food preservation cooking fiber arts bee medical herbs
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Adam Smitt, welcome to Permies!

I put this question up on Paul's programming forum, coderanch here. The moderators over there included that thread in both Python and the Java forum, so they seem to endorse Java as a good start. Here is a direct URL to their beginning Java forum. You might ask some questions there if you run into any problems.

Quick update... We went with Python. I got him this book, so I am able to tell if progress is being made. The awesome staff on coderanch recommended the publisher O'Reilly for learning any of the languages.
 
Posts: 727
Location: Morocco
99
cat forest garden trees solar wood heat woodworking
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A bit late here…

Python is nice to get started.

I switched from C/C++ to Rust a few years ago and write almost everything in it now. (Including what would be been written in Python.)
 
Posts: 30
9
  • Likes 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I spent the last 10 years teaching and having had jobs working with Go, Python, Java, I'd say without doubt JavaScript is the best language to learn.

It is fast. With NodeJS's C bindings you get all the performance you get with C, which is sufficiently fast to train AI models with your data if you wish to using TensorflowJS.

With modern libraries like React, you can build mobile applications and websites without touching any other language.

As for how to learn JavaScript, there are plenty of resources out there. Coding Train does a pretty good job building complex ideas quickly: https://www.youtube.com/user/shiffman

I also run a nonprofit class online outside of work where we help teach students technology and help them get into open source projects that (hopefully) gets them jobs as software engineers: https://www.c0d3.com
 
Adam Smitt
Posts: 4
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Joylynn Hardesty wrote:Adam Smitt, welcome to Permies!

I put this question up on Paul's programming forum, coderanch here. The moderators over there included that thread in both Python and the Java forum, so they seem to endorse Java as a good start. Here is a direct URL to their beginning Java forum. You might ask some questions there if you run into any problems.

Quick update... We went with Python. I got him this book, so I am able to tell if progress is being made. The awesome staff on coderanch recommended the publisher O'Reilly for learning any of the languages.


Hi, thanks for you reply, I will look at it.
 
Posts: 451
Location: Indiana
58
5
  • Likes 5
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Visual Basic is probably the easiest language to start with for adults. You code and then actually 'see' what you have 'built' with that code.

This is one that, I think, most community colleges have on their curriculum.

And, by the way, many community colleges have free or reduced prices for SENIORS. You should always ask about these types of courses BEFORE signing up for one.
 
master steward
Posts: 7002
Location: southern Illinois, USA
2556
goat cat dog chicken composting toilet food preservation pig bee solar wood heat homestead
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Yeah, seniors ….. I was trained on punch cards.
 
Jesse Glessner
Posts: 451
Location: Indiana
58
5
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

John F Dean wrote:Yeah, seniors ….. I was trained on punch cards.



    I had quite a bit of those myself also John. Amazing how times have changed and you just SCAN whatever is moving through a Mfg. plant, grocery store, any store actually.
    We also had some of the first magnetic, gold plated, memory drums that we worked on. And one of our Instructors in college showed us a picture of his (his company's) 5 Meg disk storage, which was the size of a modern Air Conditioning unit.

Back on those IBM cards, it was amazing what the ladies in our assembly area did with all of the "dead" cards - all kinds of Holiday decorations.
 
Posts: 539
Location: Iqaluit, Nunavut zone 0 / Mont Sainte-Marie, QC zone 4a
92
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
JavaScript
 
Posts: 139
Location: eastern cape breton, 6b
49
cat fish ungarbage
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
i've been in IT 30 years, developer, analyst, project manager, database dev, web dev... etc etc.


no bias - in 2024 python all the way.. it is versatile and has traction everywhere - cheers!
 
Ra Kenworth
Posts: 539
Location: Iqaluit, Nunavut zone 0 / Mont Sainte-Marie, QC zone 4a
92
2
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I guess this question depends on the age of the student as well as interests?

I was thinking in terms of quick visual results without installation (other than an average web browser and a text editor)

... and then quickly graduate to a "real" language like python, java, EV3 (Lego)

PS I started on Fortran with punch cards but I won't recommend that -- the cards are a pain!
 
steward
Posts: 16099
Location: USDA Zone 8a
4280
dog hunting food preservation cooking bee greening the desert
  • Likes 2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I doubt that there are any punch cards still around.

I like HTML ...
 
Jesse Glessner
Posts: 451
Location: Indiana
58
5
  • Likes 3
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I get listings occasionally about  what the 'hottest' or most useful languages one should learn if looking for a job.

It seems that Python has been at the top of the lists for quite some time now.

And it is a reasonably easy language to learn (if any of them could be termed 'easy' )
 
Ra Kenworth
Posts: 539
Location: Iqaluit, Nunavut zone 0 / Mont Sainte-Marie, QC zone 4a
92
2
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Anne Miller wrote:
I like HTML ...



My brain has been mulling over HTML and

I forgot HTML is a Hyper Text Markup Language 😂
And to begin JavaScript I would use it inside HTML, so I'm wrong 🤣 very wrong!!!

But honestly I guess one thing to consider is why the person wants to learn a computer language

If it's for a job, python is great

If you want to play with robots, even mindstorms uses python, but there are easier ways to start

If you don't have access to install anything, definitely HTML will be a contender...

And if I want to teach a language, it's the one I would check if the student already knows some HTML
And make a decision based on my ability to install what I want
Immediately, the computer (or smartphone / programmable brick) operating system keeps coming up in my mind ..

 
James MacKenzie
Posts: 139
Location: eastern cape breton, 6b
49
cat fish ungarbage
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
i guess it does depend on what the student is interested in - i didn't read carefully enough..

i was taking a "there can be only one" approach so for 2024 i said python... which i learned but have yet to use.. i have my favorites and am a SQL, HTML and PHP expert..

BUT - i was thinking of what i would recommend to someone just starting out today and after thought it is still python.. raspberry Pis, websites, ETL, multiple platforms and a good syntax plus PLENTY of great resources.. such as this (it will let you code via browser without any installs):

https://www.w3schools.com/python/default.asp

there are learning modules for other languages on that site too - best of luck to anyone starting out!!

 
master gardener
Posts: 3384
Location: Carlton County, Minnesota, USA: 3b; Dfb; sandy loam; in the woods
1652
6
forest garden trees chicken food preservation cooking fiber arts woodworking homestead ungarbage
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
This might be a useful resource if you're interested in seeing what professional developers think: https://survey.stackoverflow.co/2024/technology/
 
pollinator
Posts: 175
87
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
If you want to do engineering data processing and are entertaining Matlab, but can't swallow the license cost, Octave is free ("free as in beer") and will run a lot of Matlab code.  There are no doubt some proprietary toolboxes or functions which won't work or won't be available in Octave, but all of the basic stuff will be there, which is probably where the rank beginner would be testing his or her skills, anyway.  There's a lot of signals processing stuff in Matlab, controls related stuff, etc.

Beware that Octave's syntax is much more permissive than Matlab's.  Thus, you can write Octave code which is syntactically correct (for Octave) but which will choke Matlab.  Better to follow the stricter Matlab syntax.  You've been warned.

It's been a while since I used Matlab very seriously (even that may be overstating the case, but I did fool around with multiple end member spectral unmixing using Matlab, and some other optical-related stuff, too - I've had a variegated career).  Oh, and some k-means clustering and a few other data exploration techniques which permit one to develop some intuition when exploring high dimensional data sets, all using Matlab and mostly using homebrew code.  I don't remember much of that - it was years ago - but you can do a lot with Matlab.  Or Octave.

I've used, in no particular order: Python, Visual Basic (Excel macros, mostly, but also for Word and Access), C (mostly cannibalized other people's code to bully it into what I wanted it to do, with mixed success),  homemade special purpose scripting languages, bash scripts, BASIC, Blender, R (for statistical analyses) and I don't know what all.  None of these was by choice, but it paid the bills and got the job done.  The only formal training I ever had was one class in FORTRAN (there, I've used that, too!), so this was all catch-as-catch-can, devil-take-the-hindmost.

One that I never played with but seemed fascinating was Grasshopper for Rhinoceros.  Rhino is a 3D modeling software.  Grasshopper is a language/environment to write code/algorithms (with recursion) to manipulate geometry within Rhino.  In particular, there is an implementation of Phillip Block's "thrust network analysis" methodology for Grasshopper which can help to find catenary, compression-only forms for complex loadings and supports when designing thin shell structures (structural or Guastavino tile, among the materials suitable for realizing these shapes).  I used to have the early free ("free as in beer", again) release of Rhino, but lost it when a computer croaked.  And I don't have a serious enough need to pay for a Rhino license, at this moment.  My point in saying this is, motivation can be a huge factor.  If there is a particular problem which interests you, and most of the relevant work is being done in some niche special purpose programming language, that might be a good one to learn.  If you are into chess, and most of the best players in the world speak Russian, maybe learning Russian is the obvious choice, no matter what the Mandarin-speaking battery design engineers think.

I am no computer programmer, but if forced to choose only one tool out of all of the languages I've used or dabbled in, I think I'd pick Python.  Zed Shaw's "Python the Hard Way" may be worth a look.  His personality rubs some people the wrong way.  He's a little chippy (and, maybe he did get jobbed).  But, he seems to have a reasonable mix of coding prowess and pedagogical ability.  Those two don't always go together.  I haven't ever actually worked through PTHW, though if I hadn't gotten laid of from the computery job, that was my next extracurricular personal improvement task.  Priorities change, my motivations were largely job-related, and I haven't gotten back to it.  I'm sure there are other rigorous Python curricula available, too, I just know of PTHW.  Python is pretty powerful.  One place I worked used Python code to render multispectral scenes (from IR through the visible to UV), processed on Beowulf clusters or supercomputers.  The Python was a from-scratch rewrite of existing C code to do the same thing, and the Python code, when compiled, ran at least an order of magnitude faster, and sometimes two orders of magnitude faster than the old code base.  That probably says more about the state of the crusty C code (and may explain why it was refactored) than it does about Python, but still, there it is; Python can be reasonably competitive in speed of execution (at least if reasonably well written) and still be way friendlier than C for the new-comer.  I  always felt like writing something in C was akin to going to the corner store on a bicycle for milk, but needing to pack for the trans-Siberian overland expedition to get out the front door.
 
Ra Kenworth
Posts: 539
Location: Iqaluit, Nunavut zone 0 / Mont Sainte-Marie, QC zone 4a
92
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks James for pointing out w3 !

(I wouldn't have thought of looking there for anything but html )

Christopher: it feels good to know I'm not too far out of the loop (for beginner students)

MatLab? Probably beyond my potential comprehension!!!

This thread is very helpful to me:
this winter I will be trading outdated computer knowledge and musical ability for improving my French with four pre-teen -  ado.'s ,

and I definitely won't be installing anything on any of their machines.
(If they can do it themselves and are allowed to well that's fine though.)


Back in the olden days, I did Oracle admin and pl/SQL, but I've been outside cyber society for 20 years, and it's great to hear there are some non installed programming options that can be used with students!

I recall being able to use rewritable CD's for running Ubuntu Linux with Casper -rw,
so hopefully I can get my head around running non installed python -- with any luck there might be some interest.
 
Anne Miller
steward
Posts: 16099
Location: USDA Zone 8a
4280
dog hunting food preservation cooking bee greening the desert
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Ra Kenworth wrote:

But honestly I guess one thing to consider is why the person wants to learn a computer language



I believe the original topic was for homeschooling.

I use HTML here on the forum everyday because I usually use the Quick Reply function.

 
Ra Kenworth
Posts: 539
Location: Iqaluit, Nunavut zone 0 / Mont Sainte-Marie, QC zone 4a
92
2
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I am pretty new to the current flavors of home schooling, unschooling... Curriculum or not, or whose...

Of course there is always the why behind it all

It's going to be an exciting winter!
 
pollinator
Posts: 331
177
  • Likes 4
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No one mentioned Scratch?

Free online educational programming language from MIT, very shallow learning curve, and it's visual programming. There's even integration with various hardware platforms to explore electronics and robotics.

Scratch lets beginners understand the basic principles of programming (loops, conditions, variables, functions, object-oriented design...) with immediate rewards, and less frustration because you don't get stuck in syntax errors and obscure error messages.

It's amazing for kids and teens, but I wouldn't discount its value for adults.
 
I knew that guy would be trouble! Thanks tiny ad!
GAMCOD 2025: 200 square feet; Zero degrees F or colder; calories cheap and easy
https://permies.com/wiki/270034/GAMCOD-square-feet-degrees-colder
reply
    Bookmark Topic Watch Topic
  • New Topic