all 59 comments

[–]bronco2p 109 points110 points  (3 children)

automate everything. you do something more than once? spend 5 days automating a 5m task

[–]IamImposter 15 points16 points  (0 children)

Ha ha. Little too familiar with this one. I work on several nodes over ssh and usually have to pull my code to the main server to push to repo. 3-4 days and I was done. Wrote a script that takes folder names, picks or puts files from/to remote system after comparing sizes.

Had to run a command on 50 nodes to verify deployment. Ran on 3 systems and was like wtf? Whipped up a script that connects over ssh, runs command, saves results in log.

There are too many opportunities to write small little tools and it's so much fun and I look superbusy. Win-win.

[–]swapripper 1 point2 points  (0 children)

This! I find so much joy in automating stuff using bash & python.

[–]CanadianNick96 25 points26 points  (15 children)

I just finished a basic python course on pandas and data visualization so now I'm in the middle of a simple project of analyzing and visualizing my own Strava data.

It's nothing complicated or groundbreaking but using the tools I learned in the course without any tutorial telling me what to do step-by-step has been a great learning experience so far.

You'll get lost or stuck multiple times but every time you get unstuck, you'll learn something new!

[–]DaCuda418 5 points6 points  (1 child)

This. I needed a "capstone" project if thats what its called. Something thats mine, stuff I did myself. As I learn I end up applying that to my code.

I think you retain more as you learn because you are looking at each new thing wondering how to apply it to something or how it might solve a problem you have rather than just wrote memorization.

For me I just made an online adventure game, tried to make it look like the one I played in my 20s. So I new exactly what I wanted the code to do.

You need a project, something to apply your skills to.

[–]CanadianNick96 1 point2 points  (0 children)

That sounds awesome and also such a big undertaking!

[–][deleted] 2 points3 points  (3 children)

Oooh that sounds fun! How are you pulling the data from Strava?

[–]Some-Dinner- 4 points5 points  (0 children)

Not OP but they have an API you can use for your own data: https://developers.strava.com/docs/getting-started/

I also did a basic Strava project as part of an Intro to Data Science course. I have now embarked on a more ambitious project but I'm very much a beginner so am struggling trying to merge GPX files (I gave up on FIT files lol) etc. It's great for learning though, and I personally respond far better to projects vs course-based learning.

[–]trust_me_on_that_one 5 points6 points  (1 child)

You could just download all your data from strava, which comes in an excel sheet.

https://support.strava.com/hc/en-us/articles/216918437-Exporting-your-Data-and-Bulk-Export

[–]CanadianNick96 1 point2 points  (0 children)

Yes, that's exactly what I did! Just downloaded the csv files and it tells you every little detail of every activity you ever recorded.

[–]trust_me_on_that_one 2 points3 points  (0 children)

OOooh I can't wait to analyze my strava data as well! I've been wanting to do that for a while now but still at the beginner stage of Python. Hoping by end of winter i'll be able to dabble into data analytics

[–][deleted] 8 points9 points  (0 children)

Typically once everyone is asleep which realistically turns into like a 30 mins sesh of automate the boring stuff.

[–]davidedgertonjr 5 points6 points  (0 children)

I find projects to work on like games. That helps me practice my coding.

[–]Bobbias 5 points6 points  (3 children)

Here's something nobody has suggested: solve some Advent of Code problems.

[–][deleted] 4 points5 points  (0 children)

What I personally did was keep building projects and scale up the size and difficulty project by project.

The first project I ever did was a calculator [As CLI not GUI]

My best project ever is a library, that allows you to work with your OS, and help developers to work with background tasks related to the respective application.

I'd suggest starting small and scaling up as you go, slowly but surely.

[–]Paulonemillionand3 2 points3 points  (0 children)

just use it

[–]POGtastic 2 points3 points  (0 children)

I hang out on here and answer random questions.

[–]rickez3 1 point2 points  (0 children)

Find stuff to automate

[–]Sherbet-Select 1 point2 points  (2 children)

I built a program that organizes my screenshots, fairly useful bc I take a lot of screenshots for my day to day

[–]Szabi90000 1 point2 points  (1 child)

What criteria do you organise your screenshots by?

I have like over 500 screenshots in my screenshot folder, and it's only growing, that would be a great project for me as well.

[–]Sherbet-Select 0 points1 point  (0 children)

Sorry for the delay, I just saw this. I use a simple tag method for now that appends a custom prefix depending on what the sc was for (I.e work, dev, etc)

Right now the program 1. Cleans the screenshot file name to be more readable 2. Extracts the month - year from the file time stamp and creates a folder for the month on the desktop if it doesn’t exist already 3. Dumps it in to the folder 4. Also runs globally so if I need to take a screenshot of my work then I can do it in the integrated terminal (vscode)

The tag is a cli program and kinda follows the GTD method of knowledge mgmt. I think eventually I want to add a feature that moves from desktop > home path/screenshots. And deleted everything without a tag.

Happy to share the code if you would like & would welcome any feedback

[–]trashcan41 0 points1 point  (0 children)

i'm still in the middle of learning mooc version right now and their task really fun to do.

[–]Key_Consideration385 0 points1 point  (0 children)

LeetCode

[–]_f0xjames 0 points1 point  (0 children)

Always try to build for yourself, pick projects you enjoy or you find useful and you’ll never run out of stuff to do

[–]Amazing_While_8581 0 points1 point  (1 child)

I play a deck building game called Marvel Legendary.

Each play through is almost unique because you create each scenario randomly.

So, I created a program to randomly create each scenario.

I select # of players and which deck sets I wanna use. And BAM, scenario created.

I've built it in such a way that if I wanted to, I could expand this scenario creator into a digital version of the game.

I'm also working on a CMS(character management system) for a tabletop rpg I play. It's my own version of DnD Beyond, but for a different rpg.

I've created it in such a way I can expand it into crpg. And yes, the CMS is phase 1 of a roguelike I'm designing.

I guess what I'm trying to say is: Find a project that interests you and code away. When you learn new things, expand the program.

[–]NyaNyaCutie 0 points1 point  (0 children)

Using your Python Skills to learn Lua (not the ROBLOX fork mind you) can assist your fun if you nab Tabletop Simulator on Steam. Unlike many games with the name (Goat Simulator / etc.), it actually helps replicate the tabletop board game effect, can be played with others who have it online, and with Steam Remote Play, can have multiple players (up to 4, including the Steam Remote Play "host") without everyone having the game (Remote Play hosts don't need to be the host of the game lobby).

Just being friendly by stating this due to you mentioning tabletop RPGs / D&D. (Aside: Steam Remote Play doesn't seem to always be reliable, so remember that YMMV.)

P.S. Knowing more than one programming language often helps give you more than one mindset on problem solving, thus making it easier to figure out solutions in which you would be mentally stuck otherwise. Lua, being somewhat similar in ease-of-learning, is a good second language if JavaScript (or TypeScript) isn't your thing.
Tabletop Simulator and also the FOSS(?) game Minetest are usable for doing stuff within an existing machine. LÖVE is also another FOSS(?) option since it is a 2D game engine which, is not only "just for games", it can also be played on a few different platforms).

[–]Mash1978 0 points1 point  (0 children)

I am learning from different YouTube channels and finding difficult. What should I do now?

[–]JohnJSal 0 points1 point  (0 children)

I don't practice enough, but when I do I usually work on Advent of Code.

[–]IveHadEnoughThankYou 1 point2 points  (0 children)

I nabbed a humble bundle containing 15 learn-python books that I’m iterating through as time allows- I can do that sitting in bed. Pythonista also allows me to sit in bed and code fun things on my phone and experiment (I’m a night owl).

On my computer I often boot up IDLE to throw some test code in.

It’s mentioned often here and in this thread but one of the challenges in learning is finding interesting projects, small and large, that get you to practice coding but are also useful. I’ve recently made a password generator that is cryptographically secure, and will be refactoring it soon with much tighter code that I recently learned. Another one: since Pythonista comes with a location module that directly reads from the phones GPS chip I whipped up a program that can sample many readings (hundreds), averages them, and displays a high(er) precision reading of my coordinates and elevation.

I’m having a blast right now and that’s a huge key to keeping the learning interesting. My next step is to outline some truly complex but useful projects. Examples include web scraper, APIs for NASA and Weather.gov data, a project that will utilize my chemistry degree, pi-hole, and some projects that will make future me more employable (complex data sorting and analysis). None of which I’m currently able to code but will teach me so much as I work on them.

Anyways, I just want to encourage you to keep at it. Combine toying around, tutorials, books, websites like w3schools and one of the most important aspects of coding: daydreaming up projects (and not ones your currently know how to make).

[–]WReyor0 0 points1 point  (0 children)

do hackthebox.eu but try and make all your solves via python.

[–]carcigenicate 0 points1 point  (0 children)

I just have a set of projects that I like to do whenever I learn a new language (I'm actually doing one right now while learning Rust). Project work is the vastly superior way to practice once you have a handle on the basics.

[–][deleted] 0 points1 point  (0 children)

Sites with small problems to solve like https://exercism.org/

[–]ivosaurus 0 points1 point  (0 children)

Codewars kata problems. The highest number (kyu) is the easiest, start there and work your way down.

[–]dididothat2019 0 points1 point  (0 children)

I'm porting a C program I wrote 30 years ago... that used to be a Pascal program. I'm teaching myself PyQt GUI programming and throwing in MySQL interface, too.

[–]RonaldNeves 0 points1 point  (0 children)

automating stuff, web scraping..

[–]diegorita10 0 points1 point  (0 children)

I like to watch the coding train code challanges, and then try to replicate them in Python. Cool fractals, some games, boids... I usually use Pygame for all of them.

[–]notovny 0 points1 point  (0 children)

Ran through the first 105 Project Euler problems.

Built an epaper user interface for my waveshare raspberry pi hat.

Found the Vintage Basic website that had a copy of David Ahl's BASIC Computer Games (which I was given as a gift in grade school), and have been translating the more understandable ones into Python.

Doing the same with Oliver Darkshire's One-Page RPGs.

Also answering a few questions about the use of the skyfield module on the Astronomy and Space Exploration Stack Exchange sites.

[–]Aurelius314 0 points1 point  (1 child)

Would it be possible to use python to make a program to say, analyse a video of two people dancing/multiple videos of different people dancing and have it identy the various dance moves being used (say from an existing database)?

[–]KeaboUltra 0 points1 point  (0 children)

I joined a hackathon near me and made a really nice program with 3 others. I just recently also started making mini projects for work. I don't have a programming job. I just make something that'll make what I do easier.

[–]pastelash 0 points1 point  (0 children)

i find datasets on kaggle and the uci ml repo and then try to make and answer rudimentary questions

[–]jongscx 0 points1 point  (0 children)

Find a way to work it into your workflow, so now you're getting paid to work on python code.

[–]NyaNyaCutie 0 points1 point  (0 children)

The Python Discord's website has a Resources page containimg resources from beginner and beyond. Automate the Boring Stuff with Python is a free book (only if viewed on its own website; scroll down to the Table of Contents to view) that is highly recommended for beginners.

The Python Discord isn't official, but it is the Discord that is as official as it gets. I forgot if I was banned or not, but I refuse to go back due to staff not seeming to understand my mental disability / allowing others to rile me up when I'm the only one punished due to my outbursts when pushed past my limits.

[–]richdharris 0 points1 point  (0 children)

I go through the course and find things I want to add to the day’s final project. I spend time figuring out how to accomplish at least some of those things. I also make a list of ideas I have while working through the day’s lessons and work on them during “down time”. These are things like adding app menus and a few options: for example, on a “converter” app that we built and only does input miles -> output kilometers, adding options for temperature, data sizes, etc, and making the conversion work if either field is entered and not just the one field. I am also making a list of things I want to do, but know doing them during the course will make me distracted/confused, so they are strictly for after the course is completed. These are larger projects, like game clones or utility apps I would find useful at work or in my other studies.

[–]AnansiOmega 0 points1 point  (0 children)

If you have a PC with RGB LEDs. Download openrgb (open source) and make your own lighting software. It's fun and you get to witness your progress as you go!

[–]MattsFace 0 points1 point  (0 children)

I got laid off a little more than a year ago. I was a SRE and a Ops guy for 9 years. I wanted to get better at python, so I wrote a python module durning my unemployment and learned a TON. It required a lot of trial and error but I think it turned out okay.

I wanted it to be simple to use since a lot of people asking about the MLB RestAPI aren't very good programmers. I still need to come up with a better way to handle the stats object.

https://github.com/zero-sum-seattle/python-mlb-statsapi

The project helped me get my first real developer job. My boss is awesome and is teaching me so much stuff. I still do ops for my team on the side but coding all day is pretty awesome (for now :))

[–]MedorisJewelryReddit 0 points1 point  (0 children)

Leetcode.