SIGforum.com    Main Page  Hop To Forum Categories  The Lounge    Learn to code - Ok, how?
Page 1 2 3 
Go
New
Find
Notify
Tools
Reply
  
Learn to code - Ok, how? Login/Join 
Member
posted Hide Post
Curious Drive

They seem to be a bit specific on the Microsoft stack but have some VERY good tutorials. Sorry I can't be more specific on good refs but you're asking a very broad question.
 
Posts: 7747 | Registered: October 31, 2008Reply With QuoteReport This Post
Muzzle flash
aficionado
Picture of flashguy
posted Hide Post
Although it is an old language (one of the first), COBOL is still very much in play. It is estimated that there are more than 80 billion lines of COBOL code out there. COBOL was developed to be THE language for business purposes and as such it was tailored to handle large files efficiently. It is limited to only the basic arithmetic processes: add, subtract, multiply, divide, raise to a power, but it is amazing how much can be done with those tools. The large semiconductor manufacturer I worked for for 26 years still uses COBOL on its mainframes, and in the 1990s had to coerce colleges to again begin teaching classes in COBOL. FWIW, that firm is still running COBOL code that I wrote in the 1980s, and it runs well.

COBOL is fairly easy to learn because it looks like English. It is very verbose, however, especially if the programmer creates detailed names for the variables (up to 30 characters)--and that is encouraged. The ability of the programmer to "touch type" is beneficial. Smile

Until Ada was adopted by USAF in the 1980s as its principal language, COBOL was the one. USAF organizations have frequent turnover of their troops, and it's easy to pick up maintenance of programs written in COBOL because of the language and structure.

I'm not saying you should learn COBOL, just that it might not be a good idea to eliminate it unseen. It is a "procedural" language, and so does not compare structurally with "object oriented-OO" languages.

My 2 cents worth.

flashguy




Texan by choice, not accident of birth
 
Posts: 27911 | Location: Dallas, TX | Registered: May 08, 2006Reply With QuoteReport This Post
Member
Picture of jbcummings
posted Hide Post
If you choose Python & SQL and learn on your own well enough, look for Corey Schaffer on U-tube. He does pretty good, easy to follow bits. As Para said, though if this is in prep for a job, you’ll find the market crawling with young/cheap out-of-towners. The older you are the more difficult it is. Most of the recruiters are looking for something other than competency.


———-
Do not meddle in the affairs of wizards, for thou art crunchy and taste good with catsup.
 
Posts: 4306 | Location: DFW | Registered: May 21, 2012Reply With QuoteReport This Post
W07VH5
Picture of mark123
posted Hide Post
quote:
Originally posted by flashguy:
Although it is an old language (one of the first), COBOL is still very much in play. It is estimated that there are more than 80 billion lines of COBOL code out there. COBOL was developed to be THE language for business purposes and as such it was tailored to handle large files efficiently. It is limited to only the basic arithmetic processes: add, subtract, multiply, divide, raise to a power, but it is amazing how much can be done with those tools. The large semiconductor manufacturer I worked for for 26 years still uses COBOL on its mainframes, and in the 1990s had to coerce colleges to again begin teaching classes in COBOL. FWIW, that firm is still running COBOL code that I wrote in the 1980s, and it runs well.

COBOL is fairly easy to learn because it looks like English. It is very verbose, however, especially if the programmer creates detailed names for the variables (up to 30 characters)--and that is encouraged. The ability of the programmer to "touch type" is beneficial. Smile

Until Ada was adopted by USAF in the 1980s as its principal language, COBOL was the one. USAF organizations have frequent turnover of their troops, and it's easy to pick up maintenance of programs written in COBOL because of the language and structure.

I'm not saying you should learn COBOL, just that it might not be a good idea to eliminate it unseen. It is a "procedural" language, and so does not compare structurally with "object oriented-OO" languages.

My 2 cents worth.

flashguy
Having dealt with COBOL in the past, I found this amazing. Big Grin


TBH though, I only counted 550 reserved words.
 
Posts: 45628 | Location: Pennsyltucky | Registered: December 05, 2001Reply With QuoteReport This Post
Member
Picture of maladat
posted Hide Post
Jesus, COBOL?

The ONLY use case for COBOL these days is maintaining the nightmarish piles of legacy COBOL code that have been hacked together and added on to and abused over the course of decades that have gotten so big and nasty and complicated that no one is willing to pay enough money to rewrite them from scratch in a language that actually makes sense in the 21st century.

By all means, if you're already a good computer programmer, you want a good salary and great job security, and that doesn't sound like a job the Devil would assign you in the ninth circle of Hell, then learn COBOL and go do that, but a bank isn't going to hire some guy whose only programming experience is a few months teaching himself COBOL and turn him loose on the mainframe that handles all their account transactions.



Python is far from my favorite language, but it's hard to recommend much else to someone who wants to learn computer programming.

Why?

Well, Python is easy, and it's very high-level and concise. You can write very short programs that actually do useful stuff, and you don't have to spend a bunch of extra time writing a whole bunch of extra stuff that can be very important but doesn't really have anything to do with "just make a program that does X," and you don't have to know a bunch of the details about what the computer is actually doing behind the scenes (although knowing those details would absolutely make you a better programmer).

Python is very general-purpose. It's not the language you'd pick to write an operating system or anything that has to interact at a deep level directly with the computer hardware, but from the perspective of "make the computer do stuff," Python can do almost anything.

But most of all, Python is POPULAR. If you run into a problem you can't figure out, there are hundreds of times more resources than with a language like COBOL. Hundreds of times more books and tutorials and guides. Hundreds of times more posts on web forums where someone might have run into the exact same problem. Hundreds of times more people on web forums that will talk to you about the problem you've run into or about what you're trying to do.

And because it is popular, there are libraries (prepackaged pieces of code designed to accomplish specific tasks) for EVERYTHING. Want to build a website? There are a bunch of libraries and a bunch of people using them. Want to do machine learning or AI? There are a bunch of libraries and a bunch of people using them. Want to do statistical analysis? There are a bunch of libraries and a bunch of people using them. Want to build a robot? There are a bunch of libraries and a bunch of people using them. Want to make GUI applications? Libraries, people. Want to make your smart lightbulbs change color based on the weather outside? Libraries, people. And so on.

You can also learn the basics of modern programming paradigms like object oriented programming and functional programming with Python.

The vast majority of college computer science programs start out with Python for a lot of reasons. Even MIT, which clung to a beautiful teaching language called Scheme for its introductory courses for a very long time finally gave up and switched to Python years ago.



And then if you still want to go work on legacy COBOL systems, sure, learn COBOL. Every college computer science program I have heard of teaches multiple programming languages and I don't think I've ever even talked to anyone who does computer programming at more than a very casual hobby level (and not even most of them) who has only ever used one language.
 
Posts: 6319 | Location: CA | Registered: January 24, 2011Reply With QuoteReport This Post
Muzzle flash
aficionado
Picture of flashguy
posted Hide Post
I'd not heard of Python (been retired for 15 years) so I took a look at it. It seems pretty straightforward, but I noticed that it is an interpretive language--it has to be compiled every time it runs, which does produce some inefficiency. I suppose modern computers are fast enough to make that less important now.

flashguy




Texan by choice, not accident of birth
 
Posts: 27911 | Location: Dallas, TX | Registered: May 08, 2006Reply With QuoteReport This Post
W07VH5
Picture of mark123
posted Hide Post
quote:
Originally posted by maladat:
Jesus, COBOL? …
Sounds like swearing. Big Grin

quote:
Originally posted by Jupiter:
ChicagoSigMan,

Don't be discouraged by some of the comments. There is always a place for someone with exceptional computer skills in a company. Seldom does a turn key solution work for everyone and always a need for software utilities in the office. Take it upon yourself to write some of them on your own time and show your boss. It will get you noticed and in demand.
I agree. I’m getting back into it because the tools I need do not exist. Improving your workflow is important. As Ellis Wyatt said in Atlas Shrugged, "I'm producing everything I need, I'm working to improve my methods, and every hour I save is an hour added to my life. It used to take me five hours to fill that tank. It now takes three. The two I saved are mine -- as pricelessly mine as if I moved my grave two further hours away for every five I've got. It's two hours released from one task, to be invested in another -- two more hours in which to work, to grow, to move forward."

However, as stated by others here, if this is a plan to move to another career, weigh the pros and cons. The pay may not be what you expect. After my old programming job dried up, I went back to lawn care but after a few years a friend tried to recruit me to her shop to take another programming job. Let’s just say, I make more taking care of peoples lawns than what they were offering. I’d probably find that depressing if I didn’t loathe sitting in an office all day.
 
Posts: 45628 | Location: Pennsyltucky | Registered: December 05, 2001Reply With QuoteReport This Post
Member
posted Hide Post
quote:
Originally posted by maladat:
Jesus, COBOL?

The ONLY use case for COBOL these days is maintaining the nightmarish piles of legacy COBOL code that have been hacked together and added on to and abused over the course of decades that have gotten so big and nasty and complicated that no one is willing to pay enough money to rewrite them from scratch in a language that actually makes sense in the 21st century


As mentioned earlier, there is a lot of this still out there. Back in the dark ages, we coded in Asembler/CICS then graduated to Cobol/CICS. A friend I used to work with, now in his early 70's, still does work for a major car manufacturer on occasion. When they call him, they know it won't be cheap. Smile
 
Posts: 832 | Location: Southeast Tennessee | Registered: September 30, 2008Reply With QuoteReport This Post
Don't Panic
Picture of joel9507
posted Hide Post
My advice to the OP is twofold:

1) figure out what your objective is (you probably have one, but it wasn't part of the OP), and either

2a)* if your objective is to dip a toe into programming without spending a bunch up front, just pick any free toolset that works on your home computer and has adequate free reference matter online, and dig in. No point in spending dime one until you have a reason to.

or

2b) if your objective is professional, check with prospective employers to find what skills they recruit for, and learn those. In that case, necessary spending to get what you need to train up on that specific tool could be money well spent.

* Reasoning behind 2a: over the years, I've learned Lisp, PL/1, FORTRAN, Pascal, C, .... and worked a stint in management at a company that produced embedded software development tools. My experience is, that if you can program in one language, you can learn any others pretty quickly. Yes, habits develop - I keep wanting to put semicolons at the end of statements, for some reason Smile - but you can get over that. The skills will apply.
 
Posts: 15205 | Location: North Carolina | Registered: October 15, 2007Reply With QuoteReport This Post
Down the Rabbit Hole
Picture of Jupiter
posted Hide Post
quote:
Originally posted by Tn226:
quote:
Originally posted by maladat:
Jesus, COBOL?

The ONLY use case for COBOL these days is maintaining the nightmarish piles of legacy COBOL code that have been hacked together and added on to and abused over the course of decades that have gotten so big and nasty and complicated that no one is willing to pay enough money to rewrite them from scratch in a language that actually makes sense in the 21st century


As mentioned earlier, there is a lot of this still out there. Back in the dark ages, we coded in Asembler/CICS then graduated to Cobol/CICS. A friend I used to work with, now in his early 70's, still does work for a major car manufacturer on occasion. When they call him, they know it won't be cheap. Smile


While I would never recommend a new programmer start off by learning Cobol, many of us still use some of the old stuff. I bet many of you still prefer a Unix/Dos command line. Smile


Diligentia, Vis, Celeritas

"People sleep peaceably in their beds at night only because rough men stand ready to do violence on their behalf."
-- George Orwell

 
Posts: 4910 | Location: North Mississippi | Registered: August 09, 2002Reply With QuoteReport This Post
Down the Rabbit Hole
Picture of Jupiter
posted Hide Post
quote:
Originally posted by mark123:


quote:
Originally posted by Jupiter:
ChicagoSigMan,

Don't be discouraged by some of the comments. There is always a place for someone with exceptional computer skills in a company. Seldom does a turn key solution work for everyone and always a need for software utilities in the office. Take it upon yourself to write some of them on your own time and show your boss. It will get you noticed and in demand.
I agree. I’m getting back into it because the tools I need do not exist. Improving your workflow is important. As Ellis Wyatt said in Atlas Shrugged, "I'm producing everything I need, I'm working to improve my methods, and every hour I save is an hour added to my life. It used to take me five hours to fill that tank. It now takes three. The two I saved are mine -- as pricelessly mine as if I moved my grave two further hours away for every five I've got. It's two hours released from one task, to be invested in another -- two more hours in which to work, to grow, to move forward."

However, as stated by others here, if this is a plan to move to another career, weigh the pros and cons. The pay may not be what you expect. After my old programming job dried up, I went back to lawn care but after a few years a friend tried to recruit me to her shop to take another programming job. Let’s just say, I make more taking care of peoples lawns than what they were offering. I’d probably find that depressing if I didn’t loathe sitting in an office all day.



As parabellum and arhitect mentioned earlier in the thread, it would be an uphill battle if you approach the career in a traditional manor.
I was able to get my foot in the back door. Our company had over 40,000+ employees in a number of countries and a huge IT department. The corporate systems left much to be desired. Many times these systems produced reports that had to be hand keyed into other systems. We started off by automating the weekly UPS and FedEx .csv invoices as well as the usual .PDF, Excel, .DBF, .xml, etc. you run into in any office and production systems. Tasks that would take hours and days in many cases were reduced to minutes and seconds. These files could be dropped into a folder and automatically uploaded to SQL databases and produce reports from that data into another folder in any format we choose. Usually Excel or Word. One could make a very good living just knowing how to do this one thing. Trust me on this. I was on many awkward calls where Corporate IT was calling us to find out how we were doing it. It did have a down side. It eliminated quite a few jobs and you become the grim reaper. Frown


Diligentia, Vis, Celeritas

"People sleep peaceably in their beds at night only because rough men stand ready to do violence on their behalf."
-- George Orwell

 
Posts: 4910 | Location: North Mississippi | Registered: August 09, 2002Reply With QuoteReport This Post
Serenity now!
Picture of 4x5
posted Hide Post
You have been given some very good advice from many different professionals. I would only add that a good way to learn something new is to have an objective in mind. If you're learning to be a woodworker, have a project in mind, like a table or chessboard. Same with programming - by all means, if learning from a book, complete all the practice programs, but at the same time, be actively working on a project of your own. I find I learn more when I'm working on something that interests me, and I have to actively search out solutions to problems I run into. That's how real learning happens.

And no offense to others, but skip COBOL Big Grin go right to something modern, such as C# (pronounced C-Sharp) or Python. Both will help you get your foot in the door.

Also, don't worry too much about being the right demographic. That may be true at Facebook or Google, but you will find plenty of smaller shops just looking for a guy who knows how to code.

Good luck! If you get stuck on something, just ask. There are plenty of programmers around here who can help you out.



Ladies and gentlemen, take my advice - pull down your pants and slide on the ice.
ʘ ͜ʖ ʘ
 
Posts: 4950 | Location: Highland, UT | Registered: September 14, 2006Reply With QuoteReport This Post
Shit don't
mean shit
posted Hide Post
Add me to the Python group. I tried some of the online courses, but never really got it. I took an in-person class at my local community college and it was much easier for me to learn it. I prefer in-person for just about everything though.
 
Posts: 5825 | Location: 7400 feet in Conifer CO | Registered: November 14, 2006Reply With QuoteReport This Post
Member
Picture of maladat
posted Hide Post
quote:
Originally posted by flashguy:
I'd not heard of Python (been retired for 15 years) so I took a look at it. It seems pretty straightforward, but I noticed that it is an interpretive language--it has to be compiled every time it runs, which does produce some inefficiency. I suppose modern computers are fast enough to make that less important now.

flashguy


The usual estimate is that Python is around 50-100 times slower than a well-optimized compiled language like C++.

That doesn't really matter for learning to program, and as you say, computers have gotten fast enough that there are a lot of real-world projects where it doesn't really matter, either.

Not everyone agrees, and everyone agrees that it doesn't make sense for everything, but there's been a big push in recent years for developer efficiency. In many cases, it comes out less expensive to pay for a lot less developer time in a more efficient dev stack and then just throw enough hardware at the problem to make it fast enough.

In practical terms, a Python program on a current computer will have in the ballpark of the same execution speed as a C++ program on a computer 10-15 years ago.

Also, just because you are writing a program in Python doesn't mean that everything that happens has to run in Python. For example, Python is widely used for machine learning, which is incredibly computationally intensive - but it works fine, because almost everyone uses the TensorFlow library or something similar. You can interact with Tensorflow from Python, but the actual computation happens in a native, compiled C++ environment and optionally in a native, compiled, massively parallel CUDA environment on a compatible graphics card. So you get to do the setup and play with the data and model from easy-to-use-but-slow Python, but the actual work is done very efficiently.

I did a small audio processing machine learning project in Python with TensorFlow. Even in the native C++ part of TensorFlow, running the model training on the CPU took around four days. Switching to running it on the GPU (still using TensorFlow from Python), the model training only took about 20 minutes.

Also, Python is generally referred to as an interpreted language, but it's really a bit more complicated than that. Python programs are actually executed as bytecode (a sort of generalized machine code) on a virtual machine (a generalized simulation of a CPU) just like, say, Java, except that the Python compiler and VM don't really do any optimization the way Java does. The first time you run a Python program (or the first time you run it after making changes to the code) it gets compiled to bytecode in the background (these are the .pyc files that appear next to the .py source code files when you first run a Python program).
 
Posts: 6319 | Location: CA | Registered: January 24, 2011Reply With QuoteReport This Post
Member
Picture of maladat
posted Hide Post
quote:
Originally posted by Tn226:
quote:
Originally posted by maladat:
Jesus, COBOL?

The ONLY use case for COBOL these days is maintaining the nightmarish piles of legacy COBOL code that have been hacked together and added on to and abused over the course of decades that have gotten so big and nasty and complicated that no one is willing to pay enough money to rewrite them from scratch in a language that actually makes sense in the 21st century


As mentioned earlier, there is a lot of this still out there. Back in the dark ages, we coded in Asembler/CICS then graduated to Cobol/CICS. A friend I used to work with, now in his early 70's, still does work for a major car manufacturer on occasion. When they call him, they know it won't be cheap. Smile


There is a small but stable job market for good COBOL devs, I don't think anyone will argue against that.
 
Posts: 6319 | Location: CA | Registered: January 24, 2011Reply With QuoteReport This Post
Member
Picture of maladat
posted Hide Post
quote:
Originally posted by joel9507:
* Reasoning behind 2a: over the years, I've learned Lisp, PL/1, FORTRAN, Pascal, C, .... and worked a stint in management at a company that produced embedded software development tools. My experience is, that if you can program in one language, you can learn any others pretty quickly. Yes, habits develop - I keep wanting to put semicolons at the end of statements, for some reason Smile - but you can get over that. The skills will apply.


One point I would add to this - languages that are radically different from the ones you've already learned can take a lot more effort to learn, but can also teach you a great deal and make you a better programmer.

If you've only learned high-level languages, learning a low-level language like C will be a challenge, but will teach you a lot about what the computer is actually doing, and that knowledge will come in handy even when you aren't working in a low-level language.

If you've only learned imperative languages, learning a functional language like Haskell, Ocaml, or Clojure will be a challenge, but will teach you new ways of thinking about problems that will come in handy even when you aren't working in a primarily functional language.
 
Posts: 6319 | Location: CA | Registered: January 24, 2011Reply With QuoteReport This Post
Member
posted Hide Post
Gonna be a different voice here as it sounds like it might be a hobby.
Start with an Arduino. $50, you can have a legit Arduino, a couple chicom nano's, a breadboard/wiring kit & a 'starter' electronics pack (resistor, caps, diodes, transistors, etc). ESP8266 will add wifi/bluetooth to the simple Arduinos if you want more controls

It will take you about 10 minutes to get started with a blinking light. The Arduino IDE is stupid simple

Once you get tired of that & if you want more, a Raspberry PI & Python/javascript, you can use the Arduino stuff with it, as well as software only.

For the record, I don't really "know" any programming languages. Visual Basic/VBA is probably still my best, but I was barely proficient 10 years ago when I used it last. I may not know anything, but damn near anything VB/Arudino/Python/Javascript(node.js) can be googled & there will be at least a similar example.
 
Posts: 3340 | Location: IN | Registered: January 12, 2007Reply With QuoteReport This Post
Oh stewardess,
I speak jive.
Picture of 46and2
posted Hide Post
I've heard the number of COBOL jobs in 2021 is roughly equivalent to the number of Sanskrit translators working today.
 
Posts: 25613 | Registered: March 12, 2004Reply With QuoteReport This Post
Muzzle flash
aficionado
Picture of flashguy
posted Hide Post
quote:
Originally posted by 46and2:
I've heard the number of COBOL jobs in 2021 is roughly equivalent to the number of Sanskrit translators working today.
Obviously, maladat (see above) disagrees with you.

I was not suggesting he learn COBOL as prep for a job, although there is still a need for programmers in that language. It is an easy language to learn.

flashguy




Texan by choice, not accident of birth
 
Posts: 27911 | Location: Dallas, TX | Registered: May 08, 2006Reply With QuoteReport This Post
Now in Florida
Picture of ChicagoSigMan
posted Hide Post
Sorry for the late reply.

This is just for fun. I try to do something each year to challenge myself, and I thought this might be an interesting one for 2022. No professional or employment application whatsoever.

I don't even know what I would code. Maybe tinker around with some auto-trading algorithmic stuff for financial markets since that is in line with my primary area of knowledge. BUt maybe that's too ambitious.

That book "Automate the Boring Stuff" looks like it could be fun.
 
Posts: 6084 | Location: FL | Registered: March 09, 2009Reply With QuoteReport This Post
  Powered by Social Strata Page 1 2 3  
 

SIGforum.com    Main Page  Hop To Forum Categories  The Lounge    Learn to code - Ok, how?

© SIGforum 2024