Question for the Programmers


#1

Hello all, I’m not sure if this is the area but it’s a question for the community.

After being apart of this great keto group and being a podcast subscriber from the early days I have decided to advance my knowledge and skills and dive into programming. I have worked for software companies as a sales account manager for years and want to move into development. I took the Python Codecademy class and just started MIT’s online Intro to Computer Science and Python class.

Any advice or words of encouragement while undertaking this adventure will be warmly welcomed. I have a home automation server that I play with but I am very very green.

Sincerely,
Nick


(David) #2

Have a project in mind. Something tangible and of benefit to you. Something you could use yourself, or for someone else. Then find out how to do (technically) what it is you want to do.


#3

Thank you, I have the goal of advancing functions on my media server and being able to manipulate my Hue lights more. That is why I chose to start with Python.


#4

Read other people’s code in that language.

http://www.codeproject.com

Code Project may answer questions, but Stack Overflow is much better for that. However, Code Project has lots of examples that are posted as threads/articles.

https://www.codeproject.com/Articles/850842/Setting-up-and-Programming-Raspberry-Pi-in-Python

You’ll also want to consider learning about Git and get on GitHub to clone projects written in Python for deeper analysis and testing of the code.


(Larry Lustig) #5

Great choice in Python, a fantastic and powerful language to sit down and start programming in.

@carl, one of the 2KD hosts has another podcast called Dot Net Rocks and a decent episode was dedicated to the subject of software apprenticeships (although it doesn’t necessarily sound like you’re contemplating a career move).

If you are having a problem set aside your project and create a tiny program that contains only the code needed to demonstrate the problem. You will very often find the problem is not when you thought it was.

Use Stackoverflow, but always search to see if your question has been asked and answered before. If not, ensure your question includes the snippet of code that’s giving you trouble (from your sample program) and the specific question that had you stumped.

Taking classes is fine but most good programmers do most of their learning individually.


#6

I am doing it to try to move into more of a product manager position vs. Sales so that is great advice and I will look into it. I have had my fun in sales but I want to start going bigger. I have a passion for home automation and dev, just haven’t dove too deep. I’d like to add this to my skill set to continue growing my path towards automation and simplification of daily tasks.

And who knows… I’d love a change all together but a complete carrer change is scarry, even though I’m only 30.


(John) #7

I know a lot of languages (I use know loosely as several are quite rusty) but overall the best advice I could give my old self is not to recreate everything from the ground up in the beginning, find some already written code and make it do something else. Doesn’t have to be a lot, maybe just a different way to load or parse data or output to a different file type to start. I have coded very few things from absolute scratch, so many people make packages and libraries (especially python) and put open source code on github that knowing how to integrate and adjust other code it key.

Taking your home automation desire into account take a look at [this] (https://github.com/HackerHouseYT/Smart-Mirror) it has a video at the bottom and there are many other examples. Cheap, very cool, code is already there, change it up to get other feeds, change font, placement etc.

Finally, don’t get too hung up on language, if you like Python stick with it until you are really good. Personally I think 75% of coding is just knowing how to do it, the other 25% is just the syntax you need to learn. VBA was my start, straight to VB.NET with no real issues, C# came easy from that, which is pretty much java etc.


(David) #8

Young whipper-snapper.

Don’t underestimate the value of your working as a non-developer up until this point of your life. You will have a different perspective to business than someone that learnt to code as a toddler and left school writing JavaScript in their sleep


(John) #9

I got really good at code, but I started in business, BS in computers, MBA for business and that is where I found a lot of money and opportunity. Coders generally don’t understand the first thing about business, and vice-versa but they have to work together to get the most successful outcomes. The people who can talk to both sides and explain it in their language are in high demand. I am bilingual, I speak Geek and Sales.


#10

@Groversaurus & @jmbundy thank you for those pearls of wisdom. That is what I’m trying to transition into. I ran the BES pilot for bringing Android and iOS to the Blackberry backend and the acount managemnt new product dev at my current company. I feel like if I can expand my programming skills I can be be dangerous (in a good way) for DevOps. It’s just alot to take on and like I said before, this community has been great and I knew I would have some great advice on the software end.

Thanks y’all for the motivation and encouragement


(Kara) #11

I just made the move to becoming a software developer in 2016, and I’m already over 30 :wink:

Python is an excellent choice in first language. I’d definitely recommend reading others’ code, as others here suggested. Depending on where you live and your financial situation, there are software development bootcamps where they offer 10-18 week full-time programs. They’re definitely aimed at those looking to make a career transition.

If you’re just looking to play around and build some skills, I like codewars because it shows you other people’s solutions after yours. I also had a lot of fun trying to solve the Advent of Code puzzles, which are language independent. It really forced my learning of basic concepts.

I agree that most people will learn the fastest by having a project and just figuring out how to make it work. If you find you like books, here’s a list of free ones https://github.com/vhf/free-programming-books/blob/master/free-programming-books.md

Best of luck, and welcome to the world of eternal learning :slight_smile:


(David) #12

Getting to understand the terminology of your peers and colleagues is (almost always) a good thing. Unless they like their Ivory Towers of knowledge, and ownership, and feel threatened by it. There are people like that.


(David) #13

Oooh, cheers.

Also, check out https://www.packtpub.com/packt/offers/free-learning they give away a free book everyday.


(David) #14

+1 :+1: Like. Retweet.


(Tim Quinn) #15

For me personally, I struggled with picking up programming and floundered a little at Uni in the first 2 years. However I started watching the MIT intro to computer science course and something just clicked for me. The concepts started making sense and I really started to enjoy writing code as it really tickles the creative and problem-solving parts of my brain. I’m not saying this is a good resource for you, but if you’re struggling with any concepts I really recommend looking at a bunch of different sources until you find the one that makes sense for you. Sometimes all it takes is something explained in 3 different ways for it to click for you.

If you’re looking to find something to work on to keep motivated, Project Euler is a great source of problems to tackle. They’re math related, but it’ll let you practice writing code in the language you’re learning. I also often use Project Euler for learning a new language that I don’t already know, so I can see how to write code and use the tools with it.

Also if you’re interested in the Open Source Software world, check out First Timers Only. This site will point you to some projects you can start contributing to. Large existing projects can be very intimidating, but if you sit down and really try to comprehend how they’re built it’ll slowly come together.

Podcasts are also really good to keep yourself interested abreast of the up-and-coming in the tech industry. Check out .NET Rocks! (shout out to @carl) and Hanselminutes which are my favourites.

Edit: some more advice I thought of after I hit submit:

  • Start a blog. If you find something useful or you learn something, write about it. Articulating your ideas in a written format is a valuable skill. Check out github pages for a free way to publish.
  • Don’t feel pressured to be publishing code on github/bitbucket/etc all the time. Not every project needs to be shown to the world, nor does your value correlate with what you share via those sites.
  • Try going to a hackathon. The energy at these events is infectious, and you’ll find yourself driven to make something in no time.
  • Check out any user groups happening near you. Mingling with communities (like this one) is a great way to keep motivated. You never know, you may have to help out another person in the same situation as you :slight_smile:

(David) #16

+1 :+1: Like. Retweet.


(Liz) #17

Get a Raspberry Pi! Its a fun toy for beginning (or advanced) programming…useful and cheap too!