HackerTrans
TopNewTrendsCommentsPastAskShowJobs

LabMechanic

no profile record

Submissions

[untitled]

1 points·by LabMechanic·2 anni fa·0 comments

Ask HN: How to Get a Sofware Job?

3 points·by LabMechanic·2 anni fa·2 comments

Getting Started in Clojure [pdf]

courses.engr.illinois.edu
3 points·by LabMechanic·2 anni fa·0 comments

Compilers – Ghassan Shobaki

youtube.com
1 points·by LabMechanic·2 anni fa·0 comments

CS University Lectures (Dr. Daniel Page)

youtube.com
6 points·by LabMechanic·2 anni fa·0 comments

Scheme Cheat Sheet

courses.cs.washington.edu
5 points·by LabMechanic·3 anni fa·0 comments

Compiler Construction (2008)

cs.nyu.edu
3 points·by LabMechanic·3 anni fa·0 comments

Tell HN: Your account can be deleted anytime, for any reason

11 points·by LabMechanic·3 anni fa·24 comments

comments

LabMechanic
·2 anni fa·discuss
LLMs don't necessarily need to think to be useful. Having a simple minimal working example from an API you're trying to grok is helpful, as long as it's error-free and not redundant.

However, given the availability of LLMs, how would you justify the expense of hiring junior developers fresh out of school?

Check Microsoft.com or Google.com's career pages as an example (you will also see something similar going on within mid-sized companies), do you find any jobs for entry level applicants? Are those entry level jobs offered mostly in India or Eastern Europe?

So tell me, how is the ability to think helpful for an entry level applicant, when HR departments won't hire you because you lack “2+ years of non-internship C++ experience” for an entry-level position?

My point: being able to think is of course fine, but HR departments require you to do back and front flips, speak perfect reverse Mandarin Chinese and have 2+ years of non-internship experience in C++ on top of that. Being able to think won't justify the expense of hiring a junior dev fresh out of school in a high-income country. (At least this is my impression of the current job market.)

PS: So, I just finished school last year, and I'm still on the hunt for a job. It seems like a lot of companies in wealthy countries are holding off on hiring newbies like me. I get why they're doing it (e.g., inflation, interest rates), but it's really frustrating when you're the one affected.

I mean, how are we supposed to get experience if no one's willing to give us a shot, right? It's a tough spot to be in. Then the LLMs (even if they cannot think), they still bring value and accelerate development (with a potentially lower headcount). Seniors will be fine without us juniors given the prevalence of LLMs and high inflation environment (which makes companies risk-averse and very picky).
LabMechanic
·2 anni fa·discuss
The question remains, what is "value" (i.e., money) that we can use to exchange for other things that bring us "value" (i.e., money)? Water preparation, catching fish and making fire can bring “value” in forms of nutritional energy and bodily satisfaction.

However, our Western governments require us to have permits to catch fish, make fire. Yet, employers do not want us entry levels working at their companies. In California, they are moving the "goalpost" with the homeless people (not few are older folk where some of them went out of luck).

So tell me, is this “consumer economy” still a thing?
LabMechanic
·2 anni fa·discuss
I visit job search sites and select the “entry level” filter. Then, I read requirements such as “2+ years (non-internship) experience in C++”, “5 years of professional experience in the game industry”, and “excellent C++ skills”. Furthermore, there are requirements like “Fluent in speaking reverse Mandarin Chinese” and “being able to perform perfect back and front flips on command”. The latter two are, of course, exaggerations, but I couldn't help joking about them to alleviate the dire circumstances not only I find myself in, but also others in my circles.

I know individuals who attended top computer science universities, earned master's degrees, yet they still struggle to find a job. The missing element in such conversations is that recent graduates often lack the required expertise that HR departments demand. Companies or their HR departments have become extremely selective and require multiple interview rounds before considering employment. Alternatively, companies hire student workers because they are cheaper, or they outsource hiring to countries like India, Eastern Europe, or Turkey, pausing hiring for entry-level applicants in high-income countries.

However, some governments claim a “shortage of skilled labor especially in the IT sector,” while individuals with computer science degrees find themselves unemployed in these “uncertain times”. Experienced individuals may manage to stay afloat, but those without experience, such as recent graduates like myself, are deemed less valuable. This is partly due to the prevalence of Large Language Models (LLMs), which I refer to as “Google search on steroids”.

Have you heard of “bullshit jobs”? If so, I suspect that many positions are actually insignificant. As a student worker, I co-developed an audio editing application (C++17, Qt 5). To be honest, there was nothing in it that hadn't already been solved. Would you argue that a “level meter”, “equalizer”, or “JSON parser” are things that need to be reinvented despite the availability of MIT-licensed libraries?

Rather, these jobs appear to be a form of “collective busywork”. Nevertheless, the fortunate few engaged in such “busywork” earn significant sums despite not contributing much. What kind of economy is this, where one can thrive without generating actual value (e.g., innovation, non-copy paste work)?

A “consumer-oriented economy”, huh? We need consumers, yet we cannot drive up consumption, because we collectively play a game of hot potato until someone solves all the world's woes for us.
LabMechanic
·2 anni fa·discuss
My personal suggestion:

Make sure you are able to set pixels and create audio samples (sine function sampled over a discrete time steps). Also make sure to store the results as PPM P3 (very simple text-based image format) and WAV. Some inspiration form Wellons: https://nullprogram.com/blog/2017/11/03/

Then you can implement a ray tracer, a rasterizer or audio generator.

Other ideas:

  - implement your simple neural network learning XOR
  - implement your hash table or your version of std::unordered_map (array + 
    hash function + tombstones)
  - arena allocator
  - dynamic array or your version of std::vector
  - a circular/ring buffer (that you can also use as a queue/stack)
LabMechanic
·2 anni fa·discuss
Who knows what the future will bring (will we ever get AGI)?

Needless to say, fundamentals, that is, math (geometry, algebra, and calculus) and physics (mechanics, electromagnetism, thermodynamics).

Some basic algorithms/techniques such as backpropagation, triangle ray tracing and rasterization, and some fundamental awareness that you can compute anything given 5-6 instructions (Turing completeness). Knowing how to program in a language like Python might suffice.

Then there are skills that are essential to maintain your life, such as fire making, fishing, and water filtration. You need to get energy someway.

See also Maslow's pyramid.
LabMechanic
·2 anni fa·discuss
You forgot, fire making, water filtration (essential) and fishing (protein, fat, vitamins). How can you do all the stuff without energy? Are you running on sunlight, or do you do nuclear fission inside your body?
LabMechanic
·2 anni fa·discuss
Usually not. For me, it's an “autonomous search engine on steroids, i.e., its huge dataset”. (I.e., it's just another tool you use.)

Before LLMs, you would cobble a bunch of disjoint information via a search engine like Google. Now, LLMs do this for you, and it certainly helps me to get a lot quicker with using libraries or APIs I am not familiar with (e.g., PyGame, Flask, Django). However, you might find that code from the LLM might need some fixing (subtle bugs or redundancies) or a better use of resources.

The other issue is the LLM's dataset bias towards the most used technologies or concepts. So you might have a hard time with an LLM trying to make Clojure/Racket code or telling the LLM to specifically do the point-in-triangle test with the wedge product only.

Hence, there is still some leeway or reason to use your thing between the ears.

You might as well ask: Are you referencing Stack Overflow or the Microsoft Developer Reference (e.g., in your developer notes/comments)?

My answer: usually, yes.
LabMechanic
·2 anni fa·discuss
You can consider using MinUnit and Clang-Tidy together with Clang-Format as well, further, for C it should be something more like this:

    CC = clang
    CFLAGS = -g -std=c2x -Weverything -fsanitize=undefined,address
    
    all: app.exe
    

    app.exe: src/main.c
      $(CC) $(CFLAGS) src/main.c


  clean:
    rm -rf /build

See my comment here with an example of an NMAKE Makefile. Consider:

https://nullprogram.com/blog/2017/08/20/
LabMechanic
·2 anni fa·discuss
Here's a simple NMAKE Makefile using MSVC to compile a Win32 application on Windows 11:

  CC = cl.exe
  LD = link.exe
  CFLAGS =  /Od /Zi /FAsu /std:c17 /permissive- /W4 /WX
  LDFLAGS = /DEBUG /MACHINE:X64 /ENTRY:wWinMainCRTStartup /SUBSYSTEM:WINDOWS
  LDLIBS = user32.lib gdi32.lib
  PREFIX = ../src/

  all: app.exe

  app.exe: app.obj
  $(LD) $(LDFLAGS) /OUT:app.exe app.obj $(LDLIBS)

  app.obj: $(PREFIX)app.c
  $(CC) /c $(CFLAGS) $(PREFIX)app.c

  clean:
   rmdir /q /s build
LabMechanic
·2 anni fa·discuss
Use MinUnit.h

https://jera.com/techinfo/jtns/jtn002

Consider using Clang-Tidy with

  `-*,cert-*`
(Which disables all default options, and checks your code according to the Secure coding standard (CERT) ruleset.)

Use Clang-Format as well. If you use Clang, consider `-Weverything -fsanitize=address,undefined` and disable options that you do not need. Consider using NMake or Make (or just write a simple script to automate building the stuff).

Here's a Google-esque style guide for C:

https://gist.github.com/davidzchen/9187878

At least, this is my approach.
LabMechanic
·2 anni fa·discuss
What do you think about money and income? If people in the Western world get older, lose jobs, earn less money, and have fewer kids, who will buy those kinds of products? Maybe people in “third-world” countries (who might have enough young people)? How can those young people exchange their labor for money? Will an unskilled worker have enough wealth to buy such products? What about governments? Will they make taxation higher (e.g., less wealth for you)?
LabMechanic
·2 anni fa·discuss
At least from my experience and from the suggestions from Nassim Taleb (e.g., past events/data != future outcome/data), we cannot reliably predict the future.

The only thing that is constant is, as someone a long time argued, is “change”. Arguably, basic needs, and with that I mean existential needs, seem to be universal for most lifeforms: water, forms of energy (i.e., food, warmth), and the ability to maintain your system.

If something very bad hits the fan (no agriculture, no public farmland), you and me probably need to first learn how to make fire, how to purify water and how to catch fish. Fishing without permission could lead you to jail, but in tough situations, the legal stuff might be not your main concern. How much does it cost to get a permission? Can you afford it if you're homeless and no one is helping or giving you a job, a shelter? How are you going to get taxed and pay your government your state employees (e.g., police)? Who will then pay police to enforce laws? Or who will protect your basic constitutional rights, if you cannot pay taxes to finance a judge? Or, more extremely, what if a lot of people will be out of a job overnight? What will the government and state people do then without this transaction? So, there's a lot of what ifs… We aren't there yet.

In other words: how can you take part in a fair society if there are no jobs available, especially if you're old, unlucky, or your skills aren't as useful anymore because of LLMs or possibly AGI? Which means society does not need you, and perhaps would like to get rid of you.

The question is, will wealth (the ability to make transactions) still be relevant if AGI becomes a reality? What kind of transactions can you make? Buy AGI systems powerful enough to fulfil all kinds of labor needs, buy farmland, buy wells or sources of clean water? However, why should this be possible if some of us live in a democracy, even if there is a great influence from those with wealth?

Since I tend to be negative about things (i.e., I am biased), it's hard to say for sure what will happen. Further, there might be a lot of things I have not considered (tunnel vision).

PS: the dollar has no intrinsic value, we give value to it. So, I do not know what wealth means, if there is significantly less need for human labor. Ultimately, if some of us can have “free slaves” (i.e., robots), then some of us arguably do not need to have wealth (the ability to make transactions). Only raw power/dominance and luck.
LabMechanic
·2 anni fa·discuss
Somewhat similar to the dark ages with its aristocrats ruling over us.

Creating AGI needs powerful computers, which are costly. Independence from humans, like workers in chip factories, requires bootstrapping[1]. This leads to a scenario where a subset of humans serves their bosses, and bosses serve shareholders until AGI takes over. Those with money hold power, and if we aren't good “slaves” robots might take over. There's a chance of using prison labor, especially with the ease of getting jailed in the US for minor offenses. A cynic might say: why not change laws to make it easier to jail people? Might solve homelessness, and we get free labor that way. Rising homelessness is likely. The only option for us “plebs” is to learn basic survival skills like making fire, catching fish, and purifying water and possibly fight each other so that those who rule over us be at ease:

“When two people quarrel, a third rejoices.”

We might have a “democracy” on paper, but it is clear to me that the people can influence politics with great leverage, if they have enough wealth at their disposal:

“Despite the seemingly strong empirical support in previous studies for theories of majoritarian democracy, our analyses suggest that majorities of the American public actually have little influence over the policies our government adopts. Americans do enjoy many features central to democratic governance, such as regular elections, freedom of speech and association, and a widespread (if still contested) franchise. But we believe that if policymaking is dominated by powerful business organizations and a small number of affluent Americans, then America’s claims to being a democratic society are seriously threatened.”[2]

Keep in mind though, we cannot predict the future, it might be worse, it might be better, it might be something we cannot even imagine (see Nassim Taleb). Further, I seem to have pessimistic tendencies (biases), so keep that in mind too. So, I hope that my pessimism is just futile and does not hold any water (not even a drop).

Reference:

1. “In general, bootstrapping usually refers to a self-starting process that is supposed to continue or grow without external input.” [Source](https://en.wikipedia.org/wiki/Bootstrapping)

2. https://www.cambridge.org/core/journals/perspectives-on-poli...
LabMechanic
·2 anni fa·discuss
I find Clojure, Racket and F# to be nice, yet, it being nice does not help to pay your bills (most likely judging by the job openings you see at those job search sites). But it might help you to enjoy programming again. There are Clojure shops out there, but look at, Indeed, how many Clojure positions vs. how many regular language positions are out there?
LabMechanic
·2 anni fa·discuss
What concrete advantages does OP gain from solving a problem in Rust? If you're considering creating a language binding in Rust, you can't easily bypass C, the predominant language for operating systems, and may end up using “unsafe” anyway. While you can designate certain parts as safe and others as unsafe, the real question is: what tangible benefit does this bring to you? Is safety truly a crucial factor? Various tools like Clang-Tidy and cppcheck, as well as the SEI CERT C Coding Standard, address safety concerns.

On the flip side, Rust has great error messages and boasts a robust package manager, “cargo” (more convenient than say CMake) but lacks libraries such as STB, Catch2, nlohmann::json, and DirectX Math, OpenGL, …

Although there are bindings to libraries for DirectX Math created by others, the question remains: are they genuinely production-ready? C and C++ have a long history, they are different languages, but they are arguably orthogonal. Not completely different.

I would say: do not focus on languages, more on solving problems. That means, learn fundamental subjects well (geometry, linear algebra, calculus, differential equations). If people like Karpathy and Jensen are right, then being very good at a particular programming language might not have much of an importance.

https://karpathy.medium.com/software-2-0-a64152b37c35
LabMechanic
·2 anni fa·discuss
SEEKING PROJECTS:

Technologies: C/C++, Python, JavaScript, Rust, Scala 3, Clojure, Racket, Qt 5, SDL2, Windows API, DirectX Math, Play, Vue.js

Projects: I did write basic software rasterizers and ray tracers (in C/C++, Rust, Python, JavaScript) and a neural network learning XOR from scratch in Python. I haven't uploaded many of my projects on GitHub yet, but here is a small sample:

https://privatebin.net/?ae5a97996cd17be6#7Ps9FAqTCQYPGMmj1rY...

I am sufficiently open and curious enough to any kind of project.

E-Mail: see my about. ;)
LabMechanic
·2 anni fa·discuss
Thank you!
LabMechanic
·2 anni fa·discuss
Location: Europe

Remote: Yes

Willing to relocate: Yes

Technologies: C/C++, Python, JavaScript, Rust, Scala 3, Racket, Clojure, Linux, Git, Make, CMake, Clang-Tidy, Clang-Format, Catch2, Windows API, DirectX Math, SDL2, Qt, Play, Vue.js

Résumé/CV: https://drive.google.com/file/d/1mT6TmIjZO_dCS6q4qTP-Zikx3bb...

Email: see my about or resume.

---

Hello, I'm a recent computer science (B.Sc.) graduate eager to embark on my first role as a software developer. I bring a diverse skill set with experience in several key technologies and a solid grasp of mathematics (linear algebra, “3D math”, calculus). I am open to both long-term positions and contract work, ready to contribute my skills and enthusiasm.
LabMechanic
·2 anni fa·discuss
Nassim Taleb also suggests to not predict the future from past events. Why? Because we are not almighty and all-knowing, but we seem to collectively pretend that we are.

Some people (Munger? Buffet?) believe The Coca-Cola Company will continue to exist, because it existed for that long (Lindy effect), so it must continue to exist. Why “must”? The problem is right here, you cannot reliably predict the future. Who knows what will happen by 2060?

Therefore, things like Kondratiev waves might be a new form of modern coffee cup reading.
LabMechanic
·2 anni fa·discuss
What a coincidence, I was thinking of the same concept pictorially reading the comment you replied to, but I did not remember its name.

Panopticon it is:

https://en.wikipedia.org/wiki/Panopticon

Generally, there is plenty of reasons to be worried:

  - Firmware-wise (e.g., Intel Management Engine, Coreboot, Libreboot, system on a chip)
  - Hardware-wise (i.e., Von Neumann architecture - Code + Data)
  - Operating System-wise
    (e.g., 0-click exploits, remote code execution to manipulate the CPU's instruction pointer,
     stack overflow, Pegasus)
  - Facility-wise (e.g., electromagnetic waves, cell towers, Faraday cloth)
  - You (making mistakes)
What you can ultimately do is: rely on randomness (e.g., rolling casino-grade dice), Diceware, one-time pad, no computers of any kind. Further, hope that time traveling backwards remains impossible. Otherwise officers will travel back in time and can see what you wrote (e.g., unencrypted message) back then.

If you need some electronics go with analogue electronic devices. Or, make your own computer systems from scratch with transistors etc.:

jdh, I built my own computer. by hand., https://youtu.be/vaGZapAGvwM?si=lGQuskkFxZ7FHe1h