The Joys Of Programming

cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

Read a lot.

cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

you should assume any problem you are trying to solve has been solved before by someone else. 5 minutes reading the docs for [insert language here] standard library or 5 minutes googling will likely save you hours/days/months of work.

More often than not knowing the vocabulary needed to find a solution is more valuable than being an amazing top flight mega programmer.

(except perhaps on your course where you will asked to implement stuff from scratch for the sake of learning)

DanB wrote:
cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

you should assume any problem you are trying to solve has been solved before by someone else. 5 minutes reading the docs for [insert language here] standard library or 5 minutes googling will likely save you hours/days/months of work.

1. StackOverflow

2. The best thing about programming is that it's interactive: type stuff in, run it, and the computer will tell you if it will break. It's just about the only thing on the planet where you can get that degree of instant, objective feedback. Continually running the thing you're writing will tell you a lot.

2a. It won't, however, tell you if it's right. Or if your code is the most efficient way of doing something. Or if there's an edge case that you missed. There are tools to help with that (writing tests, profiling, etc.) but it's ultimately on your head.

2b. But you can still use that instant feedback to help you explore the different possibilities.

cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

Practice on problems you want to solve. I.e. you learn more writing scripts to manage your mp3 files than you do in the classroom writing "class Dog extends Mammal".

PWAlessi wrote:
cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

Read a lot.

Read a lot of code especially. These days there’s an absurd amount of software with code available so you can understand how basically any kind of program works, including ones you rely on. Be brave and dive in and try to learn how things really work. You’ll learn a lot of idioms that way too.

Thank you all! I appreciate the info everyone! I will be digging in quickly, reading whatever is thrown my way.

Someone in a Cincinnati-local Slack suggested this as a good start for learning to develop an API using Python. I like Michael Kennedy’s podcast, _Talking Python_, and this seems like a good intro.

https://training.talkpython.fm/cours...

fenomas wrote:
cartoonin wrote:

Any tips for someone completely green to programming? I just started back this week (for my second semester in Cyber Defense) and Intro to Programming and Logic is one of the courses that I am taking.

Practice on problems you want to solve. I.e. you learn more writing scripts to manage your mp3 files than you do in the classroom writing "class Dog extends Mammal".

This is the best advice. As someone completely green, you have no frame of reference to understand code you're looking at, and no basis to form a judgement on whether you're looking at good code or bad code (and bear in mind that bad code examples greatly outweigh good examples when googling your way through problems).

I'm not a fan of encouraging people to read a lot of books when starting out. You have nothing in your head to attach the knowledge to, and there's a good chance you'll waste a lot of time trying to understand concepts like idempotency when you have no need to understand them yet. Best way to learn is to identify some task you'd like to solve in your daily life, and then work out how to program a solution to some part of it. Or, if you want some standard business tasks that will teach knowledge almost certain to be useful, go back several pages in this thread to when I posted some sample project ideas.

I'll also point out that there will be a point where you know the basics, but then start running into problems where you have no idea if you're doing something wrong, or if the tools/software are broken, and you don't even know how to go about figuring out how to address the issue. It's the most frustrating part of learning programming. Expect it, and push through, no matter how frustrated you get. Each time you slam your head against the wall, you'll retain a tiny bit more than you did previously, and over time you'll climb over that wall.

Absolutely! I did my first bit of successfuly programming at class last week and have another class tonight, so we'll see how it goes.

Thanks again to everyone who contributed!

I would say that learning a programming language is the easy bit.

There are a million ways to accomplish even the most trivial task. The harder thing to be able to discern is which subset are the best or most sensible ways to accomplish your task.

The Internet is full of intro level advice it's much harder to find good and practical advice on best practice (for any given technology).

But I'd say this comes back to my earlier advice. Before you write any code do your due diligence and research what others have already done before you. That can be the Internet or more senior devs who have been there before you.

You can determine the approximate age of a programmer based on if they think JSNES is a Java-based SNES emulator, or a JavaScript-based NES emulator.

Spoiler:

It's the latter. Damn millennial coders.

In this wondrous new age, just compile bsnes with Emscripten to yield jsbsnes.