Beginner's Journey: Lessons Learned after 1 year #552
Replies: 2 comments 2 replies
-
|
In the interest of helping others, particularly those new to programming or just anyone who finds the many corridors around here interesting but also feels a bit overwhelmed, I'm going to post (hopefully) helpful tips in this thread - the sort I find and think might facilitate or expedite another novice/beginner like myself in their learning endeavors. The topic for today? Graphs!! TLDR;
I think the Greek etymology of the word refers to "script" or "written" or "writing". It's one thing to knock around some ideas with Socrates about redesigning the Parthenon - it's another thing to document the plan, leaving a paper trail, as it were. I think that's the gist of it, as to the origins of the word. And then there are the graphs this post is chiefly concerned with. At first glance they look ridiculously simple - like a flowchart created in Adobe Illustrator pre-alpha. A bit of text, some simple lines with the occasional arrow on either end - and basic shapes. Circles, rectangles... um... circles. It shows a kind of overview of a system much like images you might see in a design document or architecture diagram. And yes, there are many graphing viewers and editors and file extensions online that all appear to make more or less the same seemingly simple stick figure illustrations. At this moment, in this very Github repository, there is an assortment of packages that will create graphs. So, yeah, at this point I was a bit confused (probably still am) wondering why there were so many options for a pre-flowchart-era looking document format with circles and rectangle support. Back to quantum states, etc. when I started goofing with the Ends up it's kind of close to the photon double slit experiment mentioned above. The superposition thing. It depends on your observation of it and the context that's happening in. Right now, if I look at mine it is a planning document - it's me filling out a form, not quite done making all my selections and options. Like buying a car online where you can make all your selections from dropdown menus and create your very own customized version - just how you want it. When I am done, I can then use a toDOT function and print that puppy out and get all vissy wig with it. And at that point, at the instant of that observation, it manifests as a record of what I hope to build, of my dreams and aspirations for the system. Beautiful. Great. Tuck that plan.ts file somewhere close to the .gitignore file and... but wait... what's this? There's another function in the package! Love it! But come on - this is too much work man! I saw it was aptly named The "plan" became the "thing". The idea, you know, the design - the, dare I say, "graph" of all of my decisions - it, to again harken back to the good 'ol days, individuated itself. Point is, it turned into a real thing in the real world - form and matter - all that. It miracled itself into existence. What do I mean by that? I mean this: if I want to make a change to my system now? Like use a different kind of stream, or change the function that transforms the data in a particular stream? I open up my plan.ts file and make changes to it and Okay, man I can ramble. That's it for today, aside from the huge white elephant question in the room:
|
Beta Was this translation helpful? Give feedback.
-
|
Hi @brandtryan — just a very quick note to say a huge thank you for this all and please bear with me until I find time to properly respond! 🙏 |
Beta Was this translation helpful? Give feedback.


Uh oh!
There was an error while loading. Please reload this page.
-
Background: I'm the guy that has done every tutorial available for every language online and after a few years goofing around still could not write a function more complex than writing out a line to the console. And now, I'm happy to report that I can write TWO lines to the console. This went on for years until one day a few years ago, for whatever reason, I started reading about computer science and the different ways a program can be written, having only been exposed to OOP. I ended up grinding through the first few parts of SICP multiple times, but when the math got a little funky I scampered away. What I did like though - was the idea of functional programming. It was like a breath of fresh air (life support) - and I noticed that part of its groove, its nature, whatever - is that it naturally tends towards abstraction. And for my artsy brain, abstraction works for me - you can go ahead and put up the framework for your house - I'll be in the rocking chair on the porch looking around the whole neighborhood - all the buildings, and lifting out of them, their essence - what makes them a firehouse as opposed to a carwash. To extract with the mind, to lift out the central idea of something that makes it possible to call it the same thing as the firehouse in the next neighborhood - you've classified something that can be applied to yet another building in yet another neighborhood and you instantly know it.
Just the other week I was like, 'Wait - I can put numbers that don't actually represent color values and make the GPU crunch them for me? This vec3 is just an array to hold 3 values, like a 3d vector? Like in physics? And even though it's the GPU, I don't even have to RENDER anything to the screen from it - but just work it overtime to create some crazy invisible flow field of forces I literally just made up?
Sorry back on point, the biggest lesson learned after this year is that, as soon as you have an aha moment when you realize a function from a package is working some abstraction mojo, keep looking up higher because there are many layers of abstraction, that taken piecemeal are quite digestible and nutritious. When I'm stuck now, I immediately say - ohhh the Thi.ng is going abstract on me again - ohhhkay, let's go! So if you are struggling with a package - especially with how package A relates to package B - go abstract and try to find a connection. And here's a hint. It's all in those freaking APIs. It took me months to realize I was supposed to use factory, I think they are called, functions - and that they go utilize all of those apis - they do all the nitty gritty rush hour grand central station commuting. Stay in your rocking chair! When I realized that, it no longer seemed demonic to come across 500 different ways to create a 2d vector. We just put stuff in our black mailbox next to the rocking chair and presto! We get something back that is the same every time in relation to what we put into it. And then -whhhaaa - we can go to Lowes and buy another mailbox, and put it in the freaking mailbox on our porch - and get notified on our phone 20 minutes later that yet another mailbox was delivered back to us? Okay, okay - getting ahead of myself.
Put the same thing in and presto! you get the same result out. I'm fascinated with recursion and pure functions and well, having a function that itself returns another function. Conjunction Junction.
One day I was listening to some video from some wise old coder who asked the audience to consider just how young and new this whole computing thing is - computers and software. Before I had just assumed 'Well, it's math and 1's and 0's and logic - not much room there to do things differently.' I would have snubbed my nose at a programmer claiming to be creative. ha! That's funny!
Boy was I wrong. And I'm not just talking about "creative coding" or "generative art" - I didn't realize the creativity involved in solving quite technical problems - how different data structures are better for somethings than others - I remember in the SICP course early on the professor showed two ways to do the same thing - one ended up on the chalkboard looking like mount Doom, or someone's 50 generation family tree, and the other looked a triangle pointing to the right (callback hell, or something like that). I finally understood what people meant by the shape of the data.
I ended up here dipping my toes into functional programming, but also really feeling lost, like Atlanta Airport lost - but I kept remembering from one of those THOUSANDS of tutorials, one guy said, don't quit, don't stop trying, just don't. So I stuck around and have been lurking here - but I know now, for example, that if I'm at the airport bar with the hiccups nice and comfy, kicking back with the 'ol html - that if I get lost and end up in 900 kinds of vector hell in air traffic control, at least I know where I am and can back out slowly, or if I accidentally hop on the red eye rstream, that okay, let's look around and how does this relate to my cozy hiccup-html stuff? Come on man - is this a github repo or an art supply shop - how many canvases do we really need yo! Oops - got on an API shuttle and not ready for that? It's a big airport people. You have to explore and every few weeks you see a connection between this package and that package. You know what luggage you can carry on and what you check at the counter. You might not know how to make something beautiful/useful with it yet, but you've stepped through that intimidating door that said "No ENTRY" when you arrived. You need to go through that door.
Right...so I'll wrap up this rather short post - I can be a straight shooter as long as I'm hiding behind fiber optics. I started a notebook llm thing a ma bob to try to organize my learning when I started - and after adding some sources it provided this exquisite and most excellent notebook title: "Watch A Newby Learn To Code by Taking On The Most Intimidating Repository on Github." That's actually a true story.
AI is like that blind date - afterwards your friends ask - "Were they good looking??!!" and you say "Not really, but ya know, great personality!"
So I guess I've convinced myself via writing a novella sized post, that recording a few lessons learned since I've arrived here could be beneficial to all the crazy creative passionate people shaping what will surely be an era classified as prehistoric computing - but to me, that's like being a pioneer, traversing places and ideas and ways of doing things that have yet to be tread upon. See ya around.
Hiccup.
Beta Was this translation helpful? Give feedback.
All reactions