All the comments here so far ( 4 hours since this post went up) are very disappointing. They have so far:
1. Insulted the company the person has worked for (Irrelevant to the post)
2. Insulted the titles as meaningless (Irrelevant to the post)
3. Talked about Job scope (Irrelevant to the post)
4. Demeaned the promotion (Sour grapes and just nasty)
Now, i get that promotions in corporate environments are always a nasty business - unfair, political, skewed and arbitrary. It doesnt always go to the most deserving.
What this post has done (at least in my experience in the corporate world) is shown how the sausage is made. It is not pretty and a lot of the post dwells on "buy-in", "sponsorship", "relationships", etc because this is how the game is played. I have personally seen it played by both technically competent and technically incompetent people for senior technical roles.
I wish the comments would focus on the contents of the article rather than sounding like a bunch of people tired of corporate shenanigans. I mean, we all are tired of corporate bullshit when it comes to promotion. At a certain point, i decided to stop playing it and decided i am going to effectively "plateau" at that level. But, that gave me leverage i didnt have before which is that i no longer that to do anything i didnt want to do - skip-level ass-kissing, show-boating, etc, etc.
To all aspirants who wish to climb the corporate ladder and reap the benefits (financial, better job prospects, ability to work internationally at higher levels of seniority, better mating chances, better access to higher quality of life services, etc while trading off your time, stress and likely your physical and mental health), this post has solid advice.
This comment above is absolutely gold and true!
An organization can offer the following benefits to employees: Comp(salary, bonus, etc), health Benefits(health, insurance, counselling), autonomy, interesting/challenging work, push you out of your comfort zone, a non-toxic environment, etc.
The key is to recognize the Maslow's hierarchy here as well (hierarchy of benefits, instead of hierarchy of needs).
Once you offer someone top comp and top health benefits, you have crossed the hygiene layer. Then you go to the social layer (recognition, awards, non-toxic env) and finally the self-actualization layer (autonomy, pushing them harder, long-term aspirations).
> An organization can offer the following benefits to employees: Comp(salary, bonus, etc), health Benefits(health, insurance, counselling), autonomy, interesting/challenging work, push you out of your comfort zone, a non-toxic environment, etc.
A non-toxic work environment isn’t a “benefit”, it’s a basic requirement. Same for autonomy. Healthcare is just compensation.
Oh man. Do i have a list for you!
I am very self-conscious of publishing my work. So over the years i have made many software games and utilities that will never be published. My wife thinks i am being silly and i shoud publish it. Anyway, here goes....
MP3Renamer(2002) - The age of music piracy is still rife and i have downloaded my share from napster, university file shares, etc. However, most filenames are horrendous and not clean. So, my first utility was a java program that would analyse file names based on common garbled patterns and rename it into [Artist] - [Songname].mp3. It worked surprisingly well for 90% of the use cases,
CombatLogAnalyzer(2008) - Me and my wife are in the throes of World of Warcraft arena which is a competetive dueling system. We only play 2v2 and we both suck at it. So, i enabled combatlogs in WoW and then wrote a parser, analyser and visualizer for every arena game and that shows which spells were used, where did damage come up, highest contributer of damage and this was by each playable class. By the end, we learnt what was killing us and the statistics showed our strengths and weaknesses. Suffering high latency and poor skills we managed to crawl from 800 rating to 1800 rating! We just couldnt go beyond that! (I was the crutch). This was done in .NET WinForms and i really learnt how to use linq.
Space Commander (2019) - My daughter is almost 4 years old and i think she is ready for computer games. I decide to learn MonoGame and i make a Space Commander clone. It is a HIT!
HappyMrsChicken (2019) - From my smash hit game above, i make a clone of HappyMrsChicken except this is in a forest where you have corn that the chicken has to eat and there is competetion from a mysterious goblin creature who also goes after the corn. Who will win?? Turns out, i cheated and gave the chicken a boost. My daughter won a lot!!
OptionsTrading (2020) - It is covid and i am locked in a quarantine facility for 28 days. Like a lot of retail noobs, we are getting into trading stocks and options. I decide IBKR interface sucks and I can do better. While spending those 28 days in isolation from family, i learn react to write a frontend and python to write a backend that displays all our trades, statistics, UIs, loss calculators, PnL, etc. My wife and I use this to date but i am too chicken-shit to publish it.
My personal favourites are: CombatLogAnalyser, OptionsTrading and HappyMrsChicken in that order
I agree with this statement a lot. Using Copilot saves you a lot of tedium if you are comfortable with the language already. If you are new to the language, then it might trip you up a bit (at least in its current incarnation).
Here is an example where it helps. I tried to initiate a connection to a Mongodb server using Python. While i have used many databases before, I have never used Python and MongoDB together. So, i knew i would have to have some kind of MongoDB library, a connection Factory and a connection string. I could have googled all of these things.
I did the following in VS Code using CoPilot.
def get_db():
"""Initialise a MongoDB connection to a local database"""
It then automatically filled in the rest.
db = getattr(g, '_database', None)
if db is None:
db = g._database =
MongoClient('mongodb://localhost:27017/')
return db
Notice above, that it knew i was using a flask environment and added the line getattr.
Why this is a productivity boost is that i did not have to alt-tab to a browser, search for "pythong mongodb tutorial example" and then type it out. I was able to do the whole thing from VS Code and since i use vsvim, i could do this without taking my fingers off of the keyboard.
This is the next jump since autocompletion. I like it.
And you will have no idea whether the solution it presents to you is idiomatic or recommended or contains some common critical flaw or is hopelessly outdated. How can you find out? Back to alt-tabbing to the browser.
Sure it may take a bit more time to get going, but then you'll get it right the first time and learn something along the way. Your copilot example is just another iteration of copy-and-paste some random snippet from StackOverflow in the hope that it will work, but without having seen its context, like from when is the post and what comments, good or bad, did it get.
I'd actually be pretty afraid of a codebase that is created like that.
> You have no idea if the alternative code you would have written would have been idiomatic or had some critical flaw.
But I have a feeling for both, which is one of the key components of the skill in our trade.
For idionmatic code, I know the degree to which I'm following how things "should" be done or are "usually" done in a given language. If I'm uncertain, I know that. GPT won't tell me this. Worse, it will confidently claim things, possibly even if presented with evidence to the contrary.
For critical flaws, I know the "dark corners" of the code. Cases which were not obvious to handle or required some trick, etc. I'll test those specifically. With GPTs code, I have no idea what the critical cases are. I can read the code and can try to guess. But it's like outsourcing writing tests to a QA department. Never donna be as effective as the original author of the code. And if I can't trust GPT to write correct code, I can't trust it to write a good test for the code. So, neither the original author of the code (GPT) nor somebody external (me) will be able to test the result properly
I mean... I certainly know which languages I can write idiomatic code in and which I cannot.
I can't know that my code will be free of critical flaws, but I do understand the common sources of flaws and techniques to avoid them, and I'm quite confident I can build small features like this that simply aren't vulnerable to SQL injection, on the first try and without requiring fuzzers or code review: https://infosec.exchange/@malwaretech/110029899620668108
I'm confident enough in most languages I write in to recognize correct code. But I am not usually so familiar that I can conjure the exact syntax for many specialized things I need. Copilot is just a much quicker way to get what I need without looking it up.
You don’t have to accept the suggestions as-is. It’s just code, you can edit it as much as you like.
Getting a good idiomatic starting point is a great boost.
Watch the demos where they provide GPT-4 with an API for performing search queries and calculations. These tool integrations are the next step and they will include specialized ones for using language and library docs. They could also be given access to your favourite books on code style or have access to a linter that they could use to cleanup and format the code before presenting it. The model is capable of using these tools itself when it is set up with the right initial prompt. Even now Copilot is pretty good at copying your code style if there is enough code in the repo to start with.
It is. I can see that it was written in 2003 and discard it. GPT won't tell me if its answer is based on an ancient lib version.
Essentially, GPT is that rando's webpage but with the metadata stripped away that allowed me to make judgement calls about its trustworthyness. No author, no time, no style to see if somebody is trolling.
There is another way to look at this situation (beyond the use of language and specific words).
The takeaway can be as follows: Ask questions before doling out advice/help.
What this means is, you are getting a better understanding of the current situation, you are being sympathetic and by the time you talk, you do so from a position of knowledge and not shooting from the hips.
For e.g., if a colleague is stuck debugging a slow API call, it would be good to ask them.
"Hey, what all have you tried so far to resolve the issue"
If partitioning keys and adding more CPU cores has already been tried, then you could suggest - what about scanning logs for high-latency calls?
I think the point the author is making is not just using the word "just". It is about being thoughtful and sympathetic before trying to solve the problem.
1. Insulted the company the person has worked for (Irrelevant to the post)
2. Insulted the titles as meaningless (Irrelevant to the post)
3. Talked about Job scope (Irrelevant to the post)
4. Demeaned the promotion (Sour grapes and just nasty)
Now, i get that promotions in corporate environments are always a nasty business - unfair, political, skewed and arbitrary. It doesnt always go to the most deserving.
What this post has done (at least in my experience in the corporate world) is shown how the sausage is made. It is not pretty and a lot of the post dwells on "buy-in", "sponsorship", "relationships", etc because this is how the game is played. I have personally seen it played by both technically competent and technically incompetent people for senior technical roles.
I wish the comments would focus on the contents of the article rather than sounding like a bunch of people tired of corporate shenanigans. I mean, we all are tired of corporate bullshit when it comes to promotion. At a certain point, i decided to stop playing it and decided i am going to effectively "plateau" at that level. But, that gave me leverage i didnt have before which is that i no longer that to do anything i didnt want to do - skip-level ass-kissing, show-boating, etc, etc.
To all aspirants who wish to climb the corporate ladder and reap the benefits (financial, better job prospects, ability to work internationally at higher levels of seniority, better mating chances, better access to higher quality of life services, etc while trading off your time, stress and likely your physical and mental health), this post has solid advice.