TE
科技回声
首页24小时热榜最新最佳问答展示工作
GitHubTwitter
首页

科技回声

基于 Next.js 构建的科技新闻平台,提供全球科技新闻和讨论内容。

GitHubTwitter

首页

首页最新最佳问答展示工作

资源链接

HackerNews API原版 HackerNewsNext.js

© 2025 科技回声. 版权所有。

Ask HN: What's your favorite programmer niche?

71 点作者 subtract-smiles超过 2 年前
With so many 'sub genres' in programming (machine learning, networking, frontend, etc.), what's your favorite one? For me, I really like sockets/TCP type programming in Rust and C but I'm curious what people like to code in free time.

56 条评论

sbf501超过 2 年前
Whenever I get bored (rarely these days) I like to write path-finding & annealing algorithms. I start with a super simple ray-tracing framework I first wrote in the 1990's for visualization, and then I play around with things like gravity and electromagnetic repulsion / attraction. My favorite thing to do is watch a million charged spheres distribute themselves on a weird surface obeying gravity and electromagnetics, and then have another sphere try to navigate through them. It's pointless but satisfying. I'm sure Blender and Processing and all the new fancy tools can do it better, but I understand every single line of code, so I feel like it is something I made for me.
评论 #33217801 未加载
评论 #33221462 未加载
pawelwentpawel超过 2 年前
Since last year I&#x27;ve been using Pixi.js (<a href="https:&#x2F;&#x2F;pixijs.com&#x2F;" rel="nofollow">https:&#x2F;&#x2F;pixijs.com&#x2F;</a>) to create an app that puts video meetings into a 2d virtual space (<a href="https:&#x2F;&#x2F;flat.social" rel="nofollow">https:&#x2F;&#x2F;flat.social</a>). While learning how to build it, I got really (possibly a bit more than necessary) into optimising graphics performance to make sure it runs smoothly even for users who access it on potato laptops.<p>This includes pretty much every aspect of the rendering process - how often are elements updated, textures, masking, interpolation, fonts and making sure that nothing renders more often than it should. It&#x27;s a challenging but pleasant process as the result of experimentation is usually easy to measure (FPS + memory usage).<p>PS. If you&#x27;re into it as well - try Safari&#x27;s web inspector for measuring performance and investigating which frames were dropped. I found it much easier to use for debugging than Chrome.
评论 #33216653 未加载
TillE超过 2 年前
Tinkering with microcontrollers is probably the most satisfying, because it really challenges you to understand <i>exactly</i> what is going on at all times, right down to the electrical level.<p>Developing for retro hardware can be fun too, for similar reasons.
评论 #33216440 未加载
评论 #33216514 未加载
评论 #33216384 未加载
评论 #33225923 未加载
patrickkidger超过 2 年前
Autodifferentiable programming!<p>Neural networks are the famous example of this, of course -- but this can be extended to all of scientific computing. ODE&#x2F;SDE solvers, root-finding algorithms, LQP, molecular dynamics, ...<p>These days I&#x27;m doing all my work in JAX. (E.g. see Equinox or Diffrax: <a href="https:&#x2F;&#x2F;github.com&#x2F;patrick-kidger&#x2F;equinox" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;patrick-kidger&#x2F;equinox</a>, <a href="https:&#x2F;&#x2F;github.com&#x2F;patrick-kidger&#x2F;diffrax" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;patrick-kidger&#x2F;diffrax</a>). A lot of modern work is now based around hybridising such techniques with neural networks.<p>I&#x27;d really encourage anyone interested to learn how JAX works under-the-hood as well. (Look up &quot;autodidax&quot;) Lots of clever&#x2F;novel ideas in its design.
naet超过 2 年前
Arguably too large to be a niche, but I love everything web development.<p>Making projects that anyone can pull up on nearly any device via their browser, without installing anything, is so incredibly satisfying. You can make anything run in browser these days including games and full fledged applications. You can make art and interactive experiences, or you can share minimalist text based content, and either way it&#x27;s very open for people of all walks to browse and experience how they like.<p>In some ways I was raised on free internet experiences, from early flash games, to IRC, to forums and boards, to wikipedia, to youtube, eventually to HN... we really are blessed with so much stuff that is so accessible and I love to contribute even small things to the massive ecosystem.
评论 #33217039 未加载
nottorp超过 2 年前
Tbh your favorite niche will stop becoming favorite when you know enough about it.<p>When I was bitbanging wires to talk (in a simple way) to another chip the first few times it was exciting. Now it&#x27;s open schematics, figure out what to connect, do simple tests, get it to work.<p>On the other hand, if you don&#x27;t do your favorite niche for your day job and you have limited time to work on it, it can keep you entertained for years.<p>Things I consider fun to do but haven&#x27;t ever done:<p>- my own programming language<p>- a non trivial game from start to finish<p>- some kind of database&#x2F;knowledge storage thing (this is fuzzy)<p>- other stuff related to carrying bits across wires and machines (even more fuzzy, but I do seem to like moving people&#x27;s bits around)
评论 #33216889 未加载
kapitanjakc超过 2 年前
I try to create scripts for anything.<p>Tools have evolved a lot now, so there&#x27;s less stuff to script for but still I like it.<p>When I open my PC my browser, mails, text editor, slack, teams etc will load up. Browser will have few tabs opened.<p>My current development project will be up and running.<p>My machine will ping another machine which will note the time I came in and when it&#x27;s time to go that will be noted too. Helps to know time spent.<p>When I was in corporate, our office required 2 punch ins, 1 for general entrance into building and 1 for office timings. It was okay if sometimes you forgot to punch in for office as they had agreement with building staff that allowed them access to our office staff entry exit stamp. But if you don&#x27;t put in office punch in and do the punch out it&#x27;d create false entry and one had to go to HR office to get things correctly set.<p>I found that office punch in machine was on network, by asking to networking and hardware team I got proper code to do remote punch ins. Never had any missing punch after that.<p>There&#x27;s also a script which does a routine check on all my clients website like, ping them, login, check 1-2 page and logout. Do it twice a day. Once when machine is started and once in middle of the day. It has saved me countless times when some code is pushed and if that breaks I usually have enough time to fix it before someone from client side notices it.<p>Had WhatsApp message related script too before they banned other tools access on the app. But I hear now API is allowing that automation again, haven&#x27;t tried to do it though..<p>Used to have a script in js for browser console to read HN in dark mode, but had to put it every time a page loaded so have given up on it.<p>Usually I make them in python or shell. supervisor has been a gift as well.
anta40超过 2 年前
OS kernel programming. Modern Linux is too complicated for me, so I pick something smaller that can be easily understood by reading docs for a few hours: <a href="https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.828&#x2F;2012&#x2F;xv6.html" rel="nofollow">https:&#x2F;&#x2F;pdos.csail.mit.edu&#x2F;6.828&#x2F;2012&#x2F;xv6.html</a><p>You&#x27;ll see various folks publish their xv6 modifications on Github.<p>BTW, my daily work is mobile app dev (mostly Kotlin, sometimes Flutter). Totally unrelated, eh?
paulgb超过 2 年前
Pen Plotting. For those unaware, pen plotters are basically tabletop robots that you can put a pen into and have it draw whatever you want. There&#x27;s a friendly online community of people making art with them on twitter (search #plottertwitter) and instagram.<p>It&#x27;s nice to have a coding-related outlet that also produces something tangible you can hold in your hand or put on a wall.
评论 #33216667 未加载
dig1超过 2 年前
1) Cryptography done right - instead of blindly reading &amp; using algorithms, figure out <i>how</i> people got there. Requires some math background, progress is very slow, but the reward is many &quot;ahaaa!&quot; moments.<p>2) Trying&#x2F;inspecting all sorts of Lisps out there. There are so many crazy ideas tried and implemented over the last 40-50 years that IMHO, any new modern language feature probably already exists in some form in some Lisp compiler or interpreter.
analog31超过 2 年前
Scientific programming, i.e., short term problem solving, especially when working with physical measurements and experiments. The work involves a combination of programming (desktop and embedded), physics, electronics, etc. I get to choose my own tech stack (Python and Arduino), and to a large extent, my battles.<p>I like the fact that Mother Nature ultimately conducts my performance review. She doesn&#x27;t care about tech fads, personality test scores, or office politics. She doesn&#x27;t tire of proving me wrong, over and over again.<p>Germane to other comments in the thread, I&#x27;m aware of the salary disparities in the different castes of tech workers. On the other hand, unless someone is exceptionally disciplined and motivated, it takes something more than pay to propel a career.<p>While in college, I had a summer internship in a computer facility. My present job is in a building with a large team of devs. I get to see what they actually do.<p>I&#x27;ve wondered to myself if I&#x27;d be happy enough as a developer to do it for as long as I&#x27;ve done my present job, or if I&#x27;d just get bored and burn out, or start to misbehave.
mysterydip超过 2 年前
Early 90s 3D engines. Raycasting, sprite scaling, SNES mode 7, voxels, early flight&#x2F;space sims.
评论 #33216476 未加载
评论 #33216474 未加载
dunham超过 2 年前
Lately I&#x27;ve been playing around with learning type theory and writing parsers and langauges.<p>But I seem to gravitate towards writing code to decode various file formats. Over the years I&#x27;ve reverse engineered Apple Notes database, written code to read the realm database backing Craft.app, code to read couchdb files, lucene files, git pack files, sqlite databases (I have js code that runs queries against raw database files), etc.<p>I&#x27;m also interested in compression and cryptography. (Implementing toy systems to learn how stuff works.)
评论 #33217961 未加载
thiht超过 2 年前
Scrapers! I love scraping stuff, beating the anti-scrapers, finding the simplest way to scrape a page (with HTTP requests, I very rarely use headless browsers or browser automation), cleaning up the data, building something around it…<p>Weirdly I find it very relaxing.
anthomtb超过 2 年前
Digital Signal Processing (DSP) holds a particular fascination to me. It’s hard to find the necessary focus time to work on during the weekends though, what with the family needing some attention.<p>I usually end up writing simple native apps to ease silly pain points in my day-to-day life - low cognitive load, high perceived benefit. I try to get raw sockets involved whenever possible. There’s something satisfying about moving bytes around yourself. Kinda like DIY home projects.
furyofantares超过 2 年前
Systems for expressing game components as data that closely matches how you&#x27;d describe them in natural language. And ways to write the data as code literals that don&#x27;t look very different than the data format.<p>I&#x27;m mostly interested in turn based games where everything can be made simpler by leveraging the fact that it&#x27;s OK to have a computational spike in response to a player input.<p>I once had a system where expressing game components and game states was so straightforward that writing tests felt like playing the game, because 95% of my effort in writing a test was in creatively thinking about game states and components and 5% translating it to data. I normally find writing tests very unpleasant but in this case it wasn&#x27;t just tolerable, but actually fun.
anthonyhn超过 2 年前
Search engines. In recent years its become increasingly difficult to navigate the popular search engines. Results have become too general, too much SEO spam, not enough tools for filtering results, a lot of page bloat. I&#x27;m currently working on my own search engine[0] to test a few ideas I have for improving search results. Right now its mostly just a front end for the bing index with some adjustments, but I&#x27;m working on creating my own index.<p>[0] <a href="https:&#x2F;&#x2F;simplesearch.org" rel="nofollow">https:&#x2F;&#x2F;simplesearch.org</a>
shamwow_超过 2 年前
Writing rollback netcode for games. It&#x27;s difficult, and often frustrating, when you&#x27;re in the thick of it, but when you get things working it&#x27;s incredibly satisfying.
ChaosMarine超过 2 年前
I really like reading RFCs and then implementing the protocols that they describe. Preferably just do it in some plain language without any libraries, just plain old TCP&#x2F;UDP.
评论 #33218353 未加载
评论 #33218197 未加载
frompdx超过 2 年前
For fun, programming microcontrollers with Forth. Personally, I find programming an Arduino Uno with Froth much more enjoyable than using the Arduino IDE. You can issue commands from your terminal to your microcontroller to test out different bits of your code. For example, the word &quot;start&quot; starts a motor and the word &quot;stop&quot; stops it. No need to recompile your code.<p>For work, I like the infrastructure as code space. Bringing order to chaos.
mamcx超过 2 年前
Working in a relational language, to resurrect the spirit of the Base&#x2F;FoxPro family:<p><a href="https:&#x2F;&#x2F;tablam.org" rel="nofollow">https:&#x2F;&#x2F;tablam.org</a><p>This is the thing I wish to do full time, but even if not is so interesting! Is not just &quot;making a programming language&quot; is that it touch parts of &quot;make a in-memory database&quot; + &quot;array programming for the masses&quot; that makes it more challenging!
sterlind超过 2 年前
I&#x27;m partial to compiler design. there&#x27;s just something magical about bringing a new language to life, and liberating to use very different paradigms (e.g. symbolic, weird type systems, declarative.)<p>also, accessibility tools. largely pragmatic, since my limbs are slowly betraying me, but I genuinely enjoy the bootstrapping aspect, and the empowerment.
_dain_超过 2 年前
My favorite subgenre is when my commit looks like:<p><pre><code> 3 files changed, 35 insertions(+), 562 deletions(-)</code></pre>
评论 #33216534 未加载
pkrumins超过 2 年前
My favorite programming niche is SEO optimization. I really like optimizing pages and see the traffic grow.
评论 #33216448 未加载
评论 #33216329 未加载
评论 #33217968 未加载
评论 #33216375 未加载
rochak超过 2 年前
In general and at work, I like to learn and get better at Distributed Systems. In my free time, I like to learn how to do things faster: Vim, Tmux, Git, Scripting, Automation, System Administration. The joy I get when I figure out something new always gets me craving for more.
metadat超过 2 年前
Okay, I&#x27;ll byte.<p>I love almost every aspect of computing, from software to hardware.<p>Distributed systems, networking, single-machine vertical scaling, graphics programming, statistics and ML, NLP, vision, frontend.<p>Also love server hardware, grew up water-cooling and overclocking systems in the late nineties and early 00s.<p>I also find it fulfilling to help friends and family resolve their computer problems.<p>I&#x27;d like to learn more about embedded systems, I fantasize about creating my own devices stop esp32, but haven&#x27;t gotten close to having time to explore this yet.<p>I will learn and use whatever language it takes to get the outcome I wish :)<p>I will also say that as I&#x27;m getting a bit older, I&#x27;m a little sick of the physically boring aspect of sitting in front of a computer for many hours on end. No longer appealing.<p>Cheers.
评论 #33216811 未加载
TrueGeek超过 2 年前
Microsoft’s mobile framework: Maui (previously named Xamarin). It’s not nearly as popular as React Native but it’s wonderful to work with and it’s great having a company like Microsoft behind it. I’ve been working in it for 8 years now and still having a blast.
rg111超过 2 年前
This is not a proper niche, and way to broad, but: &quot;implementation niche&quot; is kinda my thing.<p>Some examples-<p>1. Artificial life design and simulation<p>2. Biological systems simulation and research, like, computational neuro science<p>3. Implememting <i>math</i>. The &quot;science&quot; in computer science<p>4. Deep Reinforcement Learning<p>5. Designing and implementing algorithms<p>6. Simulating physical systems<p>7. Computational Math<p>So, &quot;modeling&quot; in general, loosely. Also &quot;optimization&quot;.<p>Other than these:<p>I like edge devices and microcomputers. I love everything about them.<p>Other niches that I exposed myself to, but didn&#x27;t like:<p>1. Programming art (NOT ai art like Stable Diffusion, GANs, etc.)- I never found it that good.<p>2. Networking.<p>3. Databases.<p>Kinda neutral about frontend. Don&#x27;t like, don&#x27;t dislike.<p>Seems interesting now, but I know little to nothing about:<p>1. Cryptography<p>2. Quantum Information and Computation
ivanstojic超过 2 年前
Working on mechanical keyboard design. I learned so much about CNC and other manufacturing methods, relearned a lot about electronics and most entertainingly learned more than I ever thought I’d know about the USB protocol.
wyum超过 2 年前
Shader programming blows my mind, especially those niche programmers who are able to create entire scenes using only shaders.<p>For examples: www.shadertoy.com For learning: thebookofshaders.com
eimrine超过 2 年前
Blockchain&#x2F;smart contracts, Lisp, reverse engineering.
Cyph0n超过 2 年前
For work: Backend and distributed systems in general.<p>For fun: Emulation! I’ve only written one emulator so far (Gameboy Color), but I’ll probably do more in the future :)
__s超过 2 年前
<a href="https:&#x2F;&#x2F;esolangs.org&#x2F;wiki&#x2F;Main_Page" rel="nofollow">https:&#x2F;&#x2F;esolangs.org&#x2F;wiki&#x2F;Main_Page</a>
评论 #33216438 未加载
cperciva超过 2 年前
Revealed preferences say &quot;making FreeBSD work in VMs&quot;. So far I&#x27;ve ported FreeBSD to EC2 and Firecracker...
torstenvl超过 2 年前
Character sets and internationalization. I just spent a year building a one-way libiconv-ish library called cpgtou, including chasing down MS-DOS Code Page 709. <a href="https:&#x2F;&#x2F;github.com&#x2F;torstenvl&#x2F;cpgtou" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;torstenvl&#x2F;cpgtou</a>
calltrak超过 2 年前
I created <a href="https:&#x2F;&#x2F;Bigger.Bio" rel="nofollow">https:&#x2F;&#x2F;Bigger.Bio</a> as a way for The TikTok crowd and Instagramers to put multiple links on their profiles bios and do cross promotion. Admittedly it&#x27;s not rocket science but an interesting project nonetheless.
tonfreed超过 2 年前
Chatbots. I&#x27;ve written so many over the course of my life on everything from a Haskell math solving IRC bot to a chatops bot where I can check on my personal builds and AWS environment just by asking it in plain English. I even did one to help with my Discord D&amp;D dming.
pizza234超过 2 年前
Disassembling DOS malware. I also like 80s&#x2F;90s game (engine) development as well :)
mbrodersen超过 2 年前
Writing high-performance JIT compilers. I am lucky enough to get paid for it as well.
karmakurtisaani超过 2 年前
I really love working through Project Euler problems and coding the solutions to them. That, and very recently making a Game boy emulator in Rust. Never had any clue how emulators work and it&#x27;s just so much fun.
itbeho超过 2 年前
Embedded systems with Elixir&#x2F;Nerves. Fun to work with and the business opportunities are endless. My current startup measures the content of water in storage tanks with a realtime dashboard for vineyards.
评论 #33221328 未加载
gernb超过 2 年前
short programs that do something interesting<p><a href="https:&#x2F;&#x2F;dwitter.net" rel="nofollow">https:&#x2F;&#x2F;dwitter.net</a><p><a href="https:&#x2F;&#x2F;www.google.com&#x2F;search?q=bytebeat" rel="nofollow">https:&#x2F;&#x2F;www.google.com&#x2F;search?q=bytebeat</a><p><a href="https:&#x2F;&#x2F;twitter.com&#x2F;hashtag&#x2F;tweetcart" rel="nofollow">https:&#x2F;&#x2F;twitter.com&#x2F;hashtag&#x2F;tweetcart</a><p><a href="https:&#x2F;&#x2F;www.pouet.net&#x2F;prodlist.php?type%5B%5D=4k&amp;page=1" rel="nofollow">https:&#x2F;&#x2F;www.pouet.net&#x2F;prodlist.php?type%5B%5D=4k&amp;page=1</a>
throwaway0asd超过 2 年前
Test automation in the browser without use of third party libraries or frameworks. Just a test runner in Node sending tests to the browser in localhost that execute user events in the DOM
bitwize超过 2 年前
The demoscene. All the malarkey the Lisp hackers got up to.
weatherlite超过 2 年前
What&#x27;s socket&#x2F;tcp type programming? Is that a whole genre of software development - I mean a specialization in itself?
sshine超过 2 年前
Zero-Knowledge Cryptography<p>P2P protocols, networking in general
gsempe超过 2 年前
Real time operating systems or a bit less niche all around embedded systems: memory management, safety, etc..
polyterative超过 2 年前
Event driven declarative programming for user interfaces hits the spot for me. Built my career around it
zem超过 2 年前
code analysis and transformation tools. I love working with code as data; there&#x27;s something magical about being able to do deeper things with the code than the actual language interpreter or compiler typically does.
oxff超过 2 年前
Trying to make a program that a 93 year old grandmother could extend herself.
评论 #33216697 未加载
fullofdev超过 2 年前
I struggle on finding a niche. Happy that other people found theirs
kortex超过 2 年前
As of recent I&#x27;ve been weirdly fascinated with codecs, serialization protocols, file formats, and the like. It scratches that low-level hacking itch (I spent most of my professional programming in web dev space) without as much commitment to electronics (used to be super big into arduino but I find that&#x27;s harder to pick up and put down).<p>I&#x27;ve started hacking on my own container format (yeah, I know, xkcd927), after finding it super frustrating to embed arbitrary time-synched data streams into mp4&#x2F;matroska&#x2F;ogg&#x2F;etc. Also it bugs me how crusty, complicated, and arcane mp4 is, and at the same time, mastroska and ogg are weirdly opaque given how they are supposed to be open standards.<p>If anyone is curious, here&#x27;s my container format I&#x27;ve been developing: <a href="https:&#x2F;&#x2F;github.com&#x2F;xkortex&#x2F;sito" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;xkortex&#x2F;sito</a>
joshxyz超过 2 年前
my favourite is data serialization &#x2F; byte encoding. like protobuf, messagepack, and custon written ones.<p>some have really interesting approaches on storing different types of data.
tjpnz超过 2 年前
Obscure operating systems and programming languages. I&#x27;ve spent a fair amount of time recently deep diving Temple OS and Holy C which a large chunk of the former was written in. I don&#x27;t care much for Holy C but I have learned things reading through Terry Davis&#x27; implementation of it.
intelVISA超过 2 年前
something zero copy &#x2F; in-memory or a 3D game
dev_0超过 2 年前
Learning random tools in devops