[HN Gopher] Advice to Aimless, Excited Programmers (2010)
___________________________________________________________________
Advice to Aimless, Excited Programmers (2010)
Author : weird_user
Score : 248 points
Date : 2023-03-01 12:14 UTC (10 hours ago)
(HTM) web link (prog21.dadgum.com)
(TXT) w3m dump (prog21.dadgum.com)
| Animats wrote:
| Now go back and read Linus Torvalds' first note on writing
| Linux.[1]
|
| [1] https://fossbytes.com/linus-torvaldss-famous-email-first-
| lin...
| jesikafernandes wrote:
| That's a fine advice for people with hobbies that use technology.
| https://powerspeeds.com/
| HarHarVeryFunny wrote:
| The article really seems to be attacking a bit of a straw man -
| for sure technology-first rather than utility-first isn't the
| right approach if you're looking to create products, but IMO
| neither of the examples he leads with are really falling into
| that trap.
|
| The "suggest a large project I can do in language X" seems to be
| more about asking for something larger where the given language
| might be a good choice rather than asking for product ideas. The
| person asking the question would seem to just be wanting to get
| some more in-depth/real-world experience with the language
| they've just learnt and are excited about.
|
| The "suggest a Windows program you'd like to see available on
| Linux" seems entirely reasonable from POV of market/utility-
| first. Maybe the newbie's enthusiasm isn't going to be enough to
| succeed, but no harm in trying to develop something that people
| actually want rather than coming up with your own toy project.
| pedrolins wrote:
| I have faced this myself, and the aimless excitement can create a
| lot of frustration in new programmers. Programming is a unique
| tool in the sense that it has the ability to glaringly show the
| programmer's lack (or wealth) of vision.
| lasereyes136 wrote:
| I really miss this blog. It was great and had solid advice and
| points of view. I am glad a lot of the articles hold up after all
| these years.
| throwaway290 wrote:
| I'm the opposite, plenty ideas and I know I can achieve them but
| picking stack gets me paralysed...
| xyzelement wrote:
| I noticed that whenever something like this gets posted (in a
| nutshell: the advice is to be practical in what you work on) - a
| common response is that not everything must have utility, you can
| enjoy things just for their own sake.
|
| This is true, but the reason this is _advice_ (ie, suggestions of
| the best course of action) is that if you can get your enjoyment
| to line up with what 's useful, your life gets better than if you
| keep it separate.
|
| Like, if you hate your job and come home to work on something fun
| but impractical, you still hate your job where you spend most of
| your day. If you can "tune" your mind to enjoy something
| practical, potentially that thing can grow and you can do it full
| time (ie also enjoy your job)
|
| Another example is people who taught themselves to love working
| out or studying. They win twice - from doing something they enjoy
| and from engaging in something that bears fruit for themselves.
| topaz0 wrote:
| I noticed those comments as well and would make a slightly
| different point, which is that part of the reason it is good
| advice is that having a practical goal can be both motivating
| and directly helpful in the learning process. Motivating
| because you are more likely to finish a project that you want
| to use the result of. Directly helpful because it's easier to
| learn something when you see its utility at work.
| rileymat2 wrote:
| I do think it overlooks the idea that some people enjoy the
| process of programming, while others enjoy the solved problem. If
| I do a crossword puzzle or Sudoku, I don't frame it, don't care,
| I enjoyed doing it.
|
| Now one of his points is that a program by someone who does not
| use it that enjoys creating it will be inferior to someone who
| uses it and wants the solution.
|
| This is true, sometimes, but other times, what happens is the
| solution is over fitted to the person who wants it.
|
| Also, often software that is clunky because the person is not
| interested in the result, yes, but it is better than software
| that does not exist.
| oytis wrote:
| That's a fine advice for people with hobbies that use technology.
| For most of my activities outside of work, I've found that Excel
| is about as much software as I need.
| SadWebDeveloper wrote:
| I don't know if these advice still applies en 2023, mostly
| because at least on the "web" side of development there are so
| many solutions/frameworks/libraries releasing that look exciting
| but there aren't enough problems to be solved solely through
| software development in our daily lives.
|
| Till this day i don't know were can i fit svelte/solidjs/remix in
| my current development environment without introducing more
| problems than solving issues but there is a crowd of young
| developers that learn from bootcamps these tools and start
| solving all the problems with the same tech (like why is everyone
| using nextjs for static content like devdocs?).
|
| Sometimes is good to ask for problems to be solved, its more
| satisfying and challenging helping someone else rather than
| making another guitar mixer software that is a problem solved
| inside another software (ableton), also helps a lot to develop
| your professional skills because at the workplace you won't be
| the one using the software and you learn a lot of how people use
| your/the software.
| anyfactor wrote:
| I somehow get paid to be an aimless and excited programmer. I
| work in developer relations for a data company. Even though my
| title says, "engineer", I don't do product building.
|
| I don't have any exact direction honestly. We have a data product
| and I do random things as long as it improves the developer
| experience.
|
| One month I am writing a technical blog for beginners on using
| the API using Csharp, before that it was writing a 15 page
| technical document on Snowflake, yesterday I made some demo GIFs
| using a CSVgrep for a product launch.
|
| It is chaotic and I really don't have an exact year-long focus
| when it comes to programming commitment. The only thing that is
| true is that the API/database we provide, which is being used by
| real programmers from different backgrounds. The DevRel role
| demands someone to be aimless and excited. You have to know
| enough about developers to help them get started, but you are not
| required to carry them to the finish line.
|
| "Being aimless and always excited" as personality trait largely
| helps me to do a great a job. I do have to report to my manager,
| and I am a part of a team, so, I have to maintain a framework.
|
| Although time to time, I suffer from being too aimless and too
| excited, and like a golden retriever I have to be told to calm
| down. Sometimes I have to remind myself it is a job.
| amonith wrote:
| Kind of same really. For the past 8 years I've been just "a
| senior developer". Commercially I've created some CRUD
| document-processing systems with .NET + web stuff, I've created
| some apps for smart barcode scanners for warehouses, I've done
| some touch-only "pretty" apps for corporate reception desks,
| I've done some mobile apps based on GPS-tracking and QR-
| sharing, I've done some database-only solutions too (SSIS-based
| migrations between systems) and many more (desktops, games
| even).
|
| In my private time I'm having fun with procedural graphics and
| game-like apps.
|
| Can't say that I'm a domain expert in any of these, but I'm in
| top 1% earning bracket in Poland (mostly because the general
| pay in PL is shit and IT is one of the few jobs with
| "globalized" salary) and that's all I need in life. This
| approach also has some not often discussed advantages. Like I
| don't ever worry about job security as there's hundreds of
| those "CRUD"-making companies all over the world. I've actually
| went full contractor mode (not paid by the hour, but by
| completing "specs" (sometimes modules, sometimes entire
| projects)) in 2019 and I'm booked fully this year (signed
| contracts by both sides) :V
| anyfactor wrote:
| Congrats on the full year booking!
|
| I label myself as a "Python Developer" and have no high-level
| expertise over any specific domain of programming.
|
| This experience doesn't translate well to organizational
| software engineering where there is structure and hierarchy.
| I like solving problems programmatically period.
| Organizations want people to solve very specific problems
| very specifically. I wasn't able to be that person. That made
| freelancing and doing contract work the only option for me.
|
| However, I just don't enjoy contract work. There are just too
| many unpredictable variables and not all clients are the
| same. So, I am very lucky have my full-time job.
|
| I have a solid grasp on our product and am familiar with the
| programming side. I try my best to be the first person to
| answer any business side queries about our product. Our
| startup-esque nature enables me to have this freedom and
| excitement. But I do recognize the fact that, this behavior
| can be a bit distracting sometimes.
| developer93 wrote:
| That sounds like an amazing job, which I never heard of. How
| did you get into that?
| anyfactor wrote:
| Get this. I got hired because of an HN comment [0]. I will
| write about the whole story someday.
|
| Our founder is active on HN. I was applying to customer
| success engineer or technical support roles. Then one day, I
| mentioned my customer success strategy on a thread. The
| comment wasn't even top level. Our CEO saw it and he emailed
| me.
|
| He told me that, he really liked my comment, and he was
| looking for someone like me for their very first hire for a
| DevRel position. I was very afraid to apply because developer
| relations or developer advocate roles usually require a more
| mature and professional software engineer. Someone who is
| part of the industry. I have been freelancing for around 5
| years at that time, but never had any organizational
| experience and drop comments on HN and Reddit threads a lot.
|
| We talked casually over email a bit than he offered me the
| job. It was really like a miracle to be honest. I have been
| in this role for 7 months, and I am very happy. This role was
| made for me. :D
|
| [0] https://news.ycombinator.com/item?id=31857069#31858624
| embwbam wrote:
| I've had jobs like this a couple of times and they've always
| been my favorite. Unfortunately, later in my career I haven't
| been able to find or create this again. It seems like you have
| to stumble onto it from somewhere else in an organization.
| anyfactor wrote:
| You are totally right!
|
| I got hired because of an HN comment our founder saw. I told
| the story on the sister comment. Positions like this can only
| happen in startup level companies, where there is room for
| controlled chaos. Where founders can take chances and roll
| the dice with a hire.
|
| I would have never made past the application process of a
| corporate software company, and a traditional HR might deem
| me to be unprofessional. I am very lucky to be in this
| position.
| thomastjeffery wrote:
| This is both good advice, and completely useless advice.
|
| > Stop and think about all of your personal interests and solve a
| simple problem related to one of them
|
| As someone who has spent many years as an "aimless excited
| programmer", I would like to point out _emphatically_ , that this
| idea did, in fact, occur to me.
|
| So I thought about it. I asked myself that question.
|
| But then what? I didn't _have_ unsolved problems lingering in
| other hobbies. If I did, I would not have been aimless! This is
| _specifically_ the task a person in this position is asking for
| help on.
|
| Then there were the rare times that I _did_ have unsolved
| problems, but they were always way too big to practice on.
|
| Programming has two fundamental natures: abstraction and
| implementation. You can become an expert in the abstract, like a
| mathematician, but that doesn't make you an engineer.
|
| Just like mathematicians manage to keep learning math without
| engineering, we can keep learning programming without ever
| _programming_. It 's a very unsatisfying position to be in.
| dzonga wrote:
| such a useful insight - that everyone knows but don't really use.
| it's the same pit a lot of us engineers fall into - tryin' to
| solve a problem in a domain we don't have much hands on
| experience with. thinking just because there's a workable
| solution that's achievable via code.
|
| then we write postmortems of why our startup, venture, product
| didn't work - while still ignoring the fact about domain
| knowledge.
|
| which in terms of b2b software where there's a massive demand.
| few engineers including me - know domain experts that are not
| engineers.
| [deleted]
| KronisLV wrote:
| > Would you trust a music notation program developed by a non-
| musician? A Photoshop clone written by someone who has never used
| Photoshop professionally?
|
| Wouldn't a fresh look at things, essentially a "clean room"
| implementation offer the possibility of a novel approach to a
| thing or two, as opposed to making the same tool, just different?
|
| But overall the idea of matching one's ambitions (project scope)
| to one's abilities (including domain knowledge) is a good one.
|
| Not doing that is why we get things like Kickstarter campaigns
| for MMO games by novice developers, which never go anywhere as
| projects. Of course, it's also useful to fail and be humbled with
| learning projects, especially when someone's money is NOT on the
| line. Maybe more people should explore developing something like
| microservices in non-prod projects to better learn their
| advantages and disadvantages and so on.
| munchbunny wrote:
| > Wouldn't a fresh look at things, essentially a "clean room"
| implementation offer the possibility of a novel approach to a
| thing or two, as opposed to making the same tool, just
| different?
|
| Yes, sometimes, but if that's what you're going for it's still
| important that you're solving a problem that you understand
| well. So maybe I would be okay with someone with limited
| photoshop experience making an image editor, but I hope they
| still have a designer/artist/etc. background.
| wtetzner wrote:
| > Yes, sometimes, but if that's what you're going for it's
| still important that you're solving a problem that you
| understand well.
|
| I disagree. Writing a program can be a fantastic way to learn
| more about the problem. Of course, if you want the program to
| be good, you'll probably end up needing to do some serious
| iteration/rewriting as you learn more.
| jayd16 wrote:
| That analogy is pretty pointless, anyhow. I trust a desk made
| by a carpenter not a writer. I don't expect a kitchen made by a
| cook.
| PaulHoule wrote:
| Not sure how you define "musician". There is a person who has
| gone to school as a musician, who works professionally, or who
| teaches music in school (an elementary school music teacher has
| a remarkable breadth of skill and knowledge.) Then there's the
| person who taught themselves to pick at a guitar who could be a
| rather serious amateur. (Myself I'd say I'm not because after
| trying to get better at singing I decided to sing off key
| because people seemed to be more entertained by it.)
|
| If an amateur was interested enough in music to make a music
| notation program I'd say they're a serious amateur who has
| every right to try it.
| KronisLV wrote:
| I'm not too stringent with any concrete definitions here, but
| one of the things that came to mind when considering that
| possibility of a fresh look was Sonic Pi, which lets you code
| music: https://www.youtube.com/watch?v=suH_goWVBeA
|
| I'm fairly certain that it's quite different, when compared
| to decades if not centuries of past methods, all thanks to
| someone with a particular set of software development skills
| taking a new look at the already existing approaches and
| deciding to do something different.
| oriolid wrote:
| It looks also like something that won't be used by anyone
| who is familiar with the existing approaches, generally
| happy with them and is just looking for tools that would
| help them with what they are already doing. The nice part
| is that nobody's trying to push it as a replacement for
| existing notation programs or DAWs.
| Cthulhu_ wrote:
| I think a lot of it is hubris; they've solved some things in
| domains they weren't familiar with, so they think they can do
| it again. I mean some hubris is fine, but "I will change the
| world with this" is probably a bit misguided in a lot of
| situations.
|
| I mean working as a consultant I've worked in industries like
| public transit, finance, energy, postal etc, but nowhere did I
| think I understood enough to fix the whole thing. Actually
| working in those industries makes you appreciate the scale and
| scope of them, and that unless you end up at C-level, anything
| you do will probably only affect a small aspect of the whole
| construction.
|
| And that's just fine, do what you can and you'll make it to
| retirement, take on more than you can chew and you'll end up
| overworked, disillusioned, or fired.
| hyperthesis wrote:
| aka scratch your own itch
| amonith wrote:
| Good advice to advance your career, but I'd say there's nothing
| wrong with being passionate/excited about the craft and not the
| result. Newbies should just be aware that this can affect their
| career (they will have better job security as they won't be picky
| about the domain, but they will probably earn less as they won't
| ever be domain experts).
|
| There are endless examples from other "industries". There are
| people that love painting, but never care who sees their work.
| They love the creative process. There are people that love
| carpentry, but hate doing utilitarian furniture that sells well.
| They love how zen manual labor can be and that the result is
| physical.
|
| It's not "wrong-way-aroundness", it's just a different goal.
| khaledh wrote:
| Well said. I spend my day doing professional software
| development in a particular domain, where I solve real,
| tangible problems. In the evening I like to spend some time on
| aimless programming, tinkering with new languages,
| technologies, tools, etc. I do it for the enjoyment of the
| learning and the creative process as you mentioned, with no
| particular goal in mind.
| Mimmy wrote:
| [dead]
| Dave3of5 wrote:
| > but they will probably earn less as they won't ever be domain
| experts
|
| I disagree.
|
| I've rarely seen any programmers that are domain experts, most
| of those domain experts are actually hired in a consultancy
| role.
|
| As they work through the projects programmers can become very
| familiar to a specific domain but in general that's not their
| job and they will be treated as such. They will be consulted on
| implementation but less likely, if at all, on strategy. Which
| is what I would expect from a domain expert i.e. a consultant.
|
| The highest paid programmers move jobs most often the lowest
| paid don't that'll tell you what becoming a domain expert means
| for a programmer.
| dasil003 wrote:
| While it's true that in practice most programmers are
| bricklayers (especially given the growth of the industry
| leading to a young-skewing population), that doesn't
| invalidate the GP's thesis that domain expertise is a good
| lever for compensation growth. The biggest mistakes and
| greatest successes of my programming career have always been
| related to the breadth of my understanding of the product
| domain and UX that I was operating in.
|
| The other thing I find curious in your comment is the
| implication that strategy is usually set by domain experts
| who tend to be consultants. This very much runs counter to my
| experience, where consultants are brought in for specific
| jobs or problems where an outside perspective is needed, but
| generally those things are scope-boxed or time-boxed tangents
| to the business. The big strategy is generally set by leaders
| and influencers within the company via a mix of formal and
| informal venues. These individuals will have the most
| knowledge of the context specific to that business and how it
| competes in the marketplace. Consultants, by contrast, can
| develop a cross-cutting knowledge of industry, which can be a
| valuable data point well worth paying for, but a company who
| relies on consultants as the primary driver of strategy is
| rudderless and probably in decline.
| Dave3of5 wrote:
| You are probably thinking of management or business
| consultants like McKinsey and the like. A lot of companies
| will hire a consultant as a permanent member of staff when
| they are working in a specialist domain note they may be
| called something different like solution architect or
| suchlike but they are acting as consultant.
|
| I've been in several that had these types. I think the only
| companies that didn't were companies in industries that
| didn't need any specific domain experience example here are
| one that did:
|
| * Oil and Gas (Flow metering)
|
| * Network Timing and Sync testing
|
| * Health and Care (Worked in Care and had several)
|
| * Practice Management
|
| Ones that didn't
|
| * Data analysis
|
| * Data warehousing
| Ensorceled wrote:
| I disagree, imagine if someone showed up to a construction site
| and said "I bought a new hammer and have little to no idea how
| to use it, are there any cool or important projects I can pound
| nails into?"
|
| If it was my home, I would hope the crew boss would tell them
| to go build a shed or something first.
| amonith wrote:
| In this scenario he'd just be told exactly which nails to
| pound and his work would be inspected. This is a very good
| example actually, construction work is a really popular
| summer gig for students in my country (Poland). They know
| nothing and don't care about the domain (building houses),
| they just follow supervisors and the designs. You can't give
| them an entire house to build, but they are very useful and
| cheap members of the crew.
|
| They'll never be architects (they don't want to), but they'll
| earn enough to buy whatever students want and they'll always
| find some work no matter what is being built and where.
| AuthorizedCust wrote:
| In other words, the supervisor holds the vision of the
| output, and that person assures that the people interested
| in the craft are acting towards creating the desired
| output.
| baremetal wrote:
| 1. A supervisor will demonstrate what is expected.
|
| 2. Then the worker tries it while the supervisor watches.
|
| 3. Feedback is given
|
| 4. Repeat 2-4 until satisfactory work is achieved.
|
| Depending on the task this may be as little as 5 minutes
| for something simple or much longer for more complicated
| things.[1]
|
| [1] I own a rough framing business
| aynyc wrote:
| I worked construction in high school and college in the US.
| This is not how it generally works. If you are a high
| school kid, your summer construction gig is usually slave
| labor, meaning carrying ton of stuff up and down, cleaning
| stuff as you go and be a general gopher. You don't do
| anything remotely close to the construction of the house.
| The only exception is being a roofer, which you just tar
| stuff with other crew members.
| moremetadata wrote:
| There isnt anything stopping you from asking questions
| like why is something done this way. You might see it as
| slave labour, but if you laid bricks for example, you
| cant lay bricks in temperatures below 3 or 4 degrees C,
| and you can only lay so many rows of bricks high as the
| mortar has to set.
|
| Where most people are failed by those around them, like
| parents and school's is pointing out when you leave
| education, you wont stop learning, and its always good to
| ask questions and plan ahead what you want to do with
| your life.
|
| Arguably have a bucket list which will change as you age
| in order to have something to aim for, and dont get
| caught in the trap of settling for second best or end up
| being used by people who think might be your friends but
| only knew you because of what you could do for them on
| the cheap.
|
| Now you might have called your summer job slave labour, I
| look at it as being paid to exercise as well as learning
| new skills and make new contacts.
|
| On the subject of aimless excited programmers, there's
| lots of ways to look at programming before learning a
| language.
|
| If one wants to earn a lot of money, then consider
| database related programming, everything is data, even
| spreadsheets can be considered flat files of sorts. And
| whilst you probably wouldnt use javascript to write a
| database app in, even though you could stuff data into a
| cookie and run it client side, there are better general
| purpose languages suited to database work, besides the
| obvious sql languages.
|
| If chasing the money, consider looking at what's involved
| in high frequency trading where you'll be writing your
| own OS to maintain the super high speeds required for
| algorithmic trading. Co-locating data centres as close as
| possible to trading exchanges is just one part of the
| problem. [1]
|
| IF you want to do apps for smart phones, again look at
| the languages that deliver the most for you, but also
| consider whether you should go with a popular language
| like dotnet or java thats portable across platforms, or
| whether you want to go with a niche language that might
| become less popular over time especially when considering
| there are thousands of languages that exist, with many
| having fallen by the wayside.
|
| [1] https://www.ted.com/talks/kevin_slavin_how_algorithms
| _shape_...
| amonith wrote:
| I think that's a bit outside of the topic, because we're
| now discussing a case of "only passion, 0 knowledge"
| which was not the point. The author of the article thinks
| that not looking at the bigger picture (or the upper
| "decision level" if you will) is inherently wrong. My
| point is that enjoying the process and not caring about
| the product is more than enough realistically.
|
| So assume a worker that perfectly knows and likes their
| job, but doesn't care about the process "above" him. If
| you enjoy the process of tiling and you have some
| experience with tiling, you don't have to care about what
| kind of building/room you are working on. Somebody
| designed the room, somebody picked the right materials,
| somebody probably bought them and it's in the
| spec/design. You can just "tile away" and make a career
| out of it.
|
| Similarly in software, if you care only about programming
| and languages and whatnot and not the product - it's all
| you need with the right team/org. You won't be a product
| owner and you wont advance to "decision-making" levels in
| the company, but if you don't want to why would you need
| to.
| aynyc wrote:
| I can't really agree to what you are describing, despite
| the fact that certain parts of my career, I fit your
| description perfectly.
|
| The issue I have with is the statement of "make a career
| out of it". I don't think you can, at least not in the
| software industry, a lot of folks are perfectly competent
| developers but can't move forward and eventually get
| replaced by younger/cheaper developers because they are
| basically doing the same thing for the past 10 years.
|
| I agree with having passions for something, but making a
| career out of it is a lot harder if you don't do the
| "extra".
| amonith wrote:
| > a lot of folks are perfectly competent developers but
| can't move forward and eventually get replaced by
| younger/cheaper developers because they are basically
| doing the same thing for the past 10 years
|
| I'd argue that they are replaced (if they are, because
| I'm not sure, there are not a lot of old folk because IT
| industry is pretty young, I already worked with a few 50+
| mid devs and the pay is kinda reverse, because old folk
| already have homes and don't need to pay off huge
| mortgages) not because they didn't get promoted (mid dev
| -> product owner / domain expert) but because they
| stopped upgrading the skills relevant to their current
| job.
|
| So in terms of the example presented by the author it
| would be developers that are no longer even hyped about
| languages/tools. And in our imaginary "tiling specialist"
| it would be a guy that didn't care that the current fad
| is some kind of funky pattern + new material of tiles and
| still wanted to lay old ceramic square tiles for his
| entire life.
|
| I'm still not convinced that there is a scenario where
| you __have to__ care about "the domain" / "the problem
| being solved" / "the bigger picture" that much. You can,
| it will improve some aspects of your career, but you
| don't have to and it would degrade other aspects of said
| career (we all have about 16h max productive hours daily,
| and I'm being generous).
| marcosdumay wrote:
| That sounds a bit out of place in a construction site, but
| every mechanical shop has something to try the new hammer on,
| and the equivalent in a physics lab would stop everybody so
| they bring stuff to try the hammer on.
|
| The difference is mostly of culture, and seems completely
| irrelevant to what you are trying to say.
| tom-thistime wrote:
| Feels like a central issue. I find a lot to agree with here,
| and a lot to agree with in the comment you're responding to.
| Ensorceled wrote:
| I think the original articles message could boil down to
| "start small" and people are taking that to mean "don't
| start"
| jrm4 wrote:
| Hmmm. I don't know, I'd argue these are the people that might
| just happily write the proverbial DestroyBaghdad function.
| bdcravens wrote:
| Fortunately in software you can pursue your passions in your
| free time for no pay.
| greenhearth wrote:
| Yeah, exactly. What if there're no problems to solve? I like
| the metronome just fine and I want to write a Tetris in Haskell
| just to see if I can do it, or something like that?
| amonith wrote:
| Even if someone created a design that solves "the problem",
| there are probably thousands of subjects/situations where
| that design needs to be actually applied. No single software
| scales infinitely and is infinitely customizable. Some
| software even is customizable too much and that becomes its
| own problem.
|
| We need a lot of "bricklayers" that don't care about the
| problem but can be elastically moved around between projects
| to implement the ever increasing backlog of "solutions".
| Entire companies are created that solve that exact problem.
| alvis wrote:
| There are 2 things that excite human -- learning and
| realisation. The author pointed out the way how to realise a
| thing.
|
| But as many are also saying, being aimless is an opportunity to
| learn, explore and discover new possibilities. It's like how
| many of us are playing with ChatGPT at the moment. It's a
| journey of discovery that can lead you to realise the potential
| and create something truly amazing in later time. Would anyone
| say porting ChatGPT to many existing applications aimless?
| shanebellone wrote:
| "Would anyone say porting ChatGPT to many existing
| applications aimless?"
|
| I would. It's FOMO not innovation.
| solarmist wrote:
| Until it is innovation.
|
| The problem is you can't tell which it'll be in advance.
| shanebellone wrote:
| Can you name one innovation derived from a remixed API?
| ChrisMarshallNY wrote:
| _> I also take a lot of photographs, and I could use a tagging
| scheme that isn 't tied to a do-everything program like Adobe
| Lightroom. That's simple enough that I could create a minimal
| solution in an afternoon._
|
| Having done exactly that (tagging and collating app for images),
| I can report that it is likely to take somewhat longer than "an
| afternoon."
|
| The Programmer's Credo:
|
| _We do what we do; not because it is easy, but because we
| thought it would be easy._
| cyrialize wrote:
| Absolutely. This is probably why I have 4 times as many started
| & abandoned projects versus finished ones, haha.
| didgetmaster wrote:
| Years ago when Microsoft canceled its WinFS project, I began
| building the kind of file system that I wanted. Like other file
| systems, it had to be able to store hundreds of millions (or
| billions) of files and keep track of all their data streams
| even when they became highly fragmented.
|
| After just a few months, I had a base system that seemed to
| work pretty well. Then I wanted to be able to define meta-data
| tags and attach values easily to each of the files, then find
| all the files that had certain tags attached very quickly. This
| part took more time, but I had that working within the first
| year.
|
| Since then, I have worked years on adding new features to the
| project (https://didgets.com/) as each new idea comes to me. It
| now does database, logging, indexing, and other tasks well. For
| every task I pull off the 'TODO' pile and get it working, I
| seem to add two new items to the list.
|
| I never thought it would be easy, but it has been even harder
| than I originally thought. But I love to program and enjoy
| getting an idea to work in code so I stick with it.
| ColonelPhantom wrote:
| Is there much, if any, platform specific code in there? It
| seems like the GUI is based on Qt5 already, which is cross-
| platform.
|
| Also do you have a commercial Qt5 license? I think some
| components, like QtCharts, are "commercial or GPLv3", so you
| need to be careful with redistributing. IANAL but not having
| a license would mean the GPL now dictates you should release
| your entire program as GPLv3, which I assume is not what you
| want, as the source code is not available anywhere.
| didgetmaster wrote:
| There is just a single module (couple hundred lines of
| code) that is platform specific. This can be easily ported
| to Linux and/or MacOS. I had a Linux version running for
| awhile, but just don't have the resources yet to support
| multiple platforms for every build.
|
| There are two separate pieces of the project. The 'Engine'
| code does all the real work of managing the data and
| executing the queries. The 'Browser App' is used as an
| Admin/Demo tool which uses the Qt windowing platform. The
| browser just calls the engine API and makes the data
| display nicely in the various windows and dialogs.
|
| I will probably open-source the browser code. I am still
| trying to figure out if and when I will release the engine
| code using one of the open source licenses. It really
| depends on if it can get some traction so that it is worth
| the effort.
| ChrisMarshallNY wrote:
| I applaud you, sir. I can totally relate.
|
| I started a fairly major project, assuming that it would take
| four years to take off.
|
| It took ten years, but it has taken off.
| didgetmaster wrote:
| Glad to hear your project has taken off. There is still
| hope for mine, I guess.
| r3trohack3r wrote:
| I've come to appreciate that the last ~20% of the work takes
| 80% of the time and if I adjust my expectations I can usually
| get an 80% solution in 20% of the time.
|
| If you cut with the grain you can get a surprising amount done
| in a short amount of time.
|
| Depending on the project, I have a bunch of personal 80%
| projects that I'm happy with where they are.
|
| https://wikiscroll.blankenship.io
|
| I could add native language support for other wikis (some
| people have forked the project and done just that), but it
| would be that 20% work. I could expand my coverage beyond the
| "top articles" but it exceeds what I can track in git so I'd
| either have to use Wikipedia's API (slow and offloads cost to
| Wikipedia) or roll my own DB backend. That's part of the last
| 20%. I could update the repo to keep it "fresh" but I'd exceed
| the git object limit on GitHub and have to have some amount of
| long-running cron based automation. I choose to leave it as is.
|
| https://audile.blankenship.io
|
| I could store previously discovered albums, but I'd need a DB.
| I could return more than one album at a time, but I'd have to
| deal with rate limits and cache responses to take load off
| Deezer. These are all part of that last 20%, so I leave it with
| one recommendation per page load.
|
| For things I plan to monetize or share with others I tread out
| into that 20%. Like https://persona.ink
|
| For my customer contracts I share the same options with them. I
| let them know when we are cutting against the grain and where
| costs are going to balloon. I give them options to reduce cost
| by adjusting their expectations. I'm happy to charge them for
| the work, but I'd like to give them the chance to save on my
| time if they can live with the compromises.
| throwbadubadu wrote:
| > the last ~20% of the work takes 80% of the time
|
| Until you are at 90% done and realize there are still 90%
| ahead (:
| still_grokking wrote:
| But you learn this lesson only after passing the "80%"
| milestone...
| whitemary wrote:
| Very well put
| pdmccormick wrote:
| There is a great quote from Terence Parr, creator of the ANTLR
| parser generator: Why program by hand in
| five days what you can spend five years of your life
| automating?
|
| See https://www.infoq.com/presentations/Automation-DSL/
| hinkley wrote:
| What the xkcd chart misses is that if you can get a hundred
| people to use your code, the payback curve is a lot more
| forgiving. Parr only needs 366 customers for the universe to
| balance out, and that's only if you didn't grow as a person
| as part of doing that work.
|
| I don't do volunteer work for myself. I do, but also I don't.
| black_13 wrote:
| [dead]
| trimethylpurine wrote:
| This advice is best suited for entrepreneurs generally.
| Programming for fun is fine, just don't expect my money to be
| involved.
| teddyh wrote:
| Another way to say this: To develop in short cycles, you have to
| interact frequently with the actual user of the program. The
| simplest solution to this is to choose a program where the
| developer is also the user.
| cfiggers wrote:
| I like this framing. It's not that aimless, excited newbies can
| ONLY make small things for their own use. It's just that doing
| so makes an important and easy-to-mess-up part of the process
| (i.e. collecting and synthesizing end user requirements and
| feedback) nearly automatic. But framing it this way suggests a
| natural progression to eventually making things for other
| people too.
| ramraj07 wrote:
| Also the commonest? Like half the startups I see do this and no
| wonder they fail, there's only so many tools you can make for
| devs and make a lot of money.
| LAC-Tech wrote:
| I'm loving the dadgum renaissance here. He had so many great
| articles.
| is_true wrote:
| I'm an aimless curious person, I like to enter new domains and
| grab the low hanging fruits where I can add value with "code".
| aleph_minus_one wrote:
| If your comment is not intended as a joke:
|
| Just look into a some nearly arbitrary industry/department
| where Excel is used extensively. Replacing some "cobbled
| together" Excel workbooks with properly implemented
| applications very often yields a lot of low-hanging fruits
| where you can "add value with code".
| hgsgm wrote:
| Please don't destroy people workflows into a locked up app
| and then run off to the next gig.
| is_true wrote:
| I usually make workflows fully automated or save so much
| time that people just don't want to go back.
|
| If I cannot automate the full workflow I try to get to a
| solution that saves as much resources as possible without
| actually needing the "solution" to do it. It just saves
| resources
| is_true wrote:
| Not a joke. I usually end up creating better workflows
| automating tasks
| comicjk wrote:
| How would you get people to trust you to do this and make a
| solution that they can maintain in the long term? It's hard
| for me to envision an organization accepting this offer.
| aleph_minus_one wrote:
| I know people for whom what I described is the daily job.
|
| Of course, the respective organization has to ensure that
| there do exist programmers who can maintain the software
| (but having to maintain it or adding new features from time
| to time is typically a lot less work than writing the
| original software from scratch).
| another-dave wrote:
| I think this is a good approach & you can definitely write
| small programmes that solve low hanging fruit for others rather
| than yourself.
|
| The trouble the hypothetical dev in the article has is that
| they're searching in the wrong place -- the 'solution domain'
| (Rust mailing list) rather than the problem domain.
|
| I think if you want good project ideas, go to any random
| problem domain e.g. find a woodworkers mailing list, say & ask
| -- "what small little programme could I write that would help
| you when starting projects".
|
| Then, because you've just learned Rust, programme it in Rust.
| But the people you're developing it for neither need to know or
| care what language it's in.
|
| If you go to the Rust mailing list to ask for project ideas
| then you're going to either get non-real-world sample projects
| (build a calculator), or you're likely to get something that's
| a problem for Rust devs, which is likely over your head as a
| beginner.
| pncnmnp wrote:
| I believe there is a way to accomplish this without seeking
| input from people on Reddit or message boards for new domains
| to contribute to.
|
| There are lists on Github that curate libraries native to a
| particular programming language. For example, there is a list
| for Lua (https://github.com/LewisJEllis/awesome-lua) and
| another for Python (https://github.com/vinta/awesome-python).
| Explore these lists to identify areas that may require
| assistance. Some of these lists have not been updated for
| years, so it is worthwhile to conduct additional research on
| the domain before undertaking a project.
|
| I have personally completed a project using this approach,
| although I did have some background knowledge in that domain.
| freetonik wrote:
| Good advice.
|
| RE key 1 ("keep it simple"), I'd like to add to extend this to
| tools. You don't need to learn tmux, vim, docker, kubernetes,
| CI/CD etc. in order to create useful things. Just use whatever
| you're comfortable with at the moment (including the mouse!), and
| don't ever feel that "real programmers" use some fancy and/or
| nerdy tools.
___________________________________________________________________
(page generated 2023-03-01 23:01 UTC)