Hacker News new | past | comments | ask | show | jobs | submit | vple's comments login

I think good writing is more about the higher level: effectively communicating a point. Mechanical components, such as grammar, are important but don't help express ideas.

As a tangent, I think a lot of the soft influence you mention requires effective communication, not effective writing. In my experience, it's important to understand the context and information that others are working under/with, and to make sure that relevant information makes its way to people who need it.


> How much does the environment you're in contribute to performance?

As an oversimplified answer, a lot.

I think this is actually a complex question, cause there's a lot of dimensions to go in. Even in your story, it seems like your environment is influencing in many different ways. I'm gonna point out some things that stuck out to me (sorry if any of this is obvious/long-winded/not what you're looking for...).

Company A sounds mid to large sized, and it sounds like they hire a decent amount of college grads. Their size encourages them to have a reliable/smooth/consistent hiring and onboarding process. I would guess that there's a decent amount of tutorial/guide resources (e.g. code labs), as well as various system and process documentation. There's probably more support/guidance, and more senior team members have likely done their fair share of onboarding (so they're presumably better, more friendly, and more tolerant about it). As a result of all this, the learning curve probably feels a lot smoother and less steep.

Company B, as you mentioned, is likely expecting more significant contribution from the jump. A startup is probably not optimizing/focusing on training. But it's not just that--startups likely task people with larger and more vaguely defined tasks. Having prior, relevant experience to draw on is likely very helpful here, as it helps with defining and dealing with these more complex tasks. The learning curve is steeper and progressing along it feels much more unstructured and confusing. (If this is interesting, look into kind vs. wicked learning environments.)

Note that this has largely just been rough job expectations and approach to onboarding/training. There's still the whole people/social front.

It sounds like the experience with people at company B was unpleasant. To be charitable, maybe they were stressed, tired, low on patience, etc. Regardless, it seems like there was pressure to perform and not to fail. As I understand it, this kind of situation tends to make people perform worse (because they're stressed/tense/not able to focus as much on the task at hand). It's also not as conducive to learning since that requires some space to screw up.

I don't have much to go on for company C, but it sounds more collaborative/cooperative. I'm guessing that if/when you did propose a bad option for a design, your coworkers at least heard you out and justified why they thought it wouldn't work. They might also have recognized that you were making an effort to contribute and that, as a new hire, you were missing important information/context for making a decision.

So far this has mostly been one-sided: how your environment is likely to influence you. But you're still an actor here--someone's performance in an environment also depends on how they react to the environment! One person might prefer ambiguous tasks while another person prefers a clear set of instructions. Maybe one person handles stress really well while another feels like it's crushing them. Being able to recognize elements of your environment often makes it much easier to navigate, kind of like being at home vs. visiting somewhere foreign.

Anyways I've written a lot so I'll just leave it there. I hope it was interesting and not too much of a wall of text!


I also wrote a tool for playing: https://github.com/vple/wordle-solver/blob/main/solver.js

There's probably more tuning I can do for the algo, but roughly:

- I took all the words from the site's js as the dictionary.

- From remaining eligible words, compute the letter distribution (ignoring letters you already know are in the solution).

- Pick a word that uses as many of the most frequent letters as possible.

- Use one of those as a guess.

The goal is essentially to greedily reduce the remaining candidate words as much as possible per guess.


This is pretty much what I did, but I mixed in a regexp to hold the location restrictions, and a penalty for using the same letter multiple times. (eg guessing “added” is worse than “aspen” for “a..e.”)

I do wonder if looking at how a letter splits the space of letters and words would be interesting


Yeah, I wasn't sure how I wanted to deal with duplicates so I mostly ignored them. I track letter positions directly (just a bunch of tuples), but don't actually do anything with this other than restricting candidates words.

I think if I work on this some more I'd try to factor in letter positioning when deciding what to guess. My hunch is that it won't make too much of a difference though.


So I tried an experiment using 15,918 five letter English words. I used a basic scoring strategy of scoring a word by summing up the frequency of the candidate letters in the candidate words as determined by a regexp of included and excluded letters. (e.g. `.aves` would score `waves` 1, but `saves` as 0 since `s` is already included)

Variations included adding in the frequency of the letter at a particular position, and adding in the frequency of two letter combinations.

Interestingly enough, the winning strategy was using single letters and using figuring in the position. Second second best was using two letters and position.

ngram=1 posfreq=True mean attempts: 4.34 WinPct 91.280%

ngram=2 posfreq=True mean attempts: 4.35 WinPct 91.186%

ngram=2 posfreq=False mean attempts: 4.37 WinPct 90.074%

ngram=1 posfreq=False mean attempts: 4.38 WinPct 90.445%

Since my base dictionary is way bigger than the Wordle one, I also mixed in a smaller 1,382 word dictionary (google-10000-english.txt) and then combined them by either just sorting by the score, or normalizing the scores, and then sorting. Normalizing the scores was strictly worse.

normalize=False ngram=1 posfreq=True mean attempts: 4.34 WinPct 91.280%

normalize=True ngram=1 posfreq=True mean attempts: 4.43 WinPct 90.281%

FWIW, the absolute worse one was:

normalize=True ngram=1 posfreq=False mean attempts: 4.43 WinPct 89.835%

I should write this up.


Which solution list did you use to calculate the mean attempts?

Another comment mentioned https://botfights.io/game/wordle, if you evaluate your solver on their word list you could compare scores.


> How did you first get into programming?

In high school, my friend and I realized you could program TI-84 graphing calculators. We made really simple games (guess a number from 1-100, hangman, etc.). I didn't even realize I was programming at the time.

I was also influenced by my dad (he was a software engineer, so I wanted to try it too). First formal education was an AP computer science course in 12th grade.

I was into math/puzzles/logical stuff at that time, so a lot of the initial concepts that you have to learn were both easier for me to pick up and more interesting (compared against someone who knows what they want to build, but views the intermediate knowledge/skills as something they have to slog through).

> What is your experience with university?

MIT, CS degree. Both the degree and the brand name helped with finding work.

In practice, it's hard for me to identify explicit things I learned during school that have also been applicable and useful at work. I suspect that the most useful learnings weren't part of any syllabus (e.g. fluency with a language).

> How did you get your first paid work?

Internship, through which I received a full-time offer.

> What do you do now and what do you love/hate about your job?

Currently funemployed, but previously an engineering manager.

The fun part is when the team's work comes together and produces a result.

The not fun part is when my line of thinking doesn't line up with someone else's. It is sometimes (often?) frustrating for me to debug why our approaches differ, then figure out how to make progress from there.


Similar ideas discussed in The Best Interface is No Interface: https://www.amazon.com/Best-Interface-No-brilliant-technolog...

I like the underlying concept a lot (roughly, use technology to accomplish minimal-interaction user experiences). Practically, however, I think it's rather hard to accomplish because a lot of constraints/forces are going to incentive developers/companies to do what's easiest for them.


I think it's good that you're taking time to evaluate yourself! I suspect you are smart but haven't found something that fits your "groove" yet.

Here are some thoughts/questions that came to mind:

- It seems like, currently, you're good creatively (building, seeing a big picture) and feel that you struggle with implementation (the details).

- Do you want/need to do well in either or both of these? To what end?

- On technical stuff: it's helped me to understand the intent behind an approach, formula, etc. This helps me understand how to apply the tools I have.


I've seen this too, and I'm wondering how (or if) this fits into the shapes/additive/subtractive model.

"Ritual" work doesn't seem like it falls under additive or subtractive to me. Maybe it's some combination of being multiplicative / reshaping? If you can multiply/reshape you or others' efforts towards the project, the project (hopefully) becomes easier.

There's a bit of an assumption that someone is "modifying" work in a useful way--multiplying a shape won't help if more of that shape isn't useful.


He's probably selling to diversify. It looks like he's selling based on a 10b5-1 plan, i.e. he's selling on a predetermined plan.


Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: