Details
-
AboutAnalytics Engineer
-
SkillsJavaScript
Joined devRant on 10/26/2017
Join devRant
Do all the things like
++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatar
Sign Up
Pipeless API
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple API
Learn More
-
!rant
After over 20 years as a Software Engineer, Architect, and Manager, I want to pass along some unsolicited advice to junior developers either because I grew through it, or I've had to deal with developers who behaved poorly:
1) Your ego will hurt you FAR more than your junior coding skills. Nobody expects you to be the best early in your career, so don't act like you are.
2) Working independently is a must. It's okay to ask questions, but ask sparingly. Remember, mid and senior level guys need to focus just as much as you do, so before interrupting them, exhaust your resources (Google, Stack Overflow, books, etc..)
3) Working code != good code. You are an author. Write your code so that it can be read. Accept criticism that may seem trivial such as renaming a variable or method. If someone is suggesting it, it's because they didn't know what it did without further investigation.
4) Ask for peer reviews and LISTEN to the critique. Even after 20+ years, I send my code to more junior developers and often get good corrections sent back. (remember the ego thing from tip #1?) Even if they have no critiques for me, sometimes they will see a technique I used and learn from that. Peer reviews are win-win-win.
5) When in doubt, do NOT BS your way out. Refer to someone who knows, or offer to get back to them. Often times, persons other than engineers will take what you said as gospel. If that later turns out to be wrong, a bunch of people will have to get involved to clean up the expectations.
6) Slow down in order to speed up. Always start a task by thinking about the very high level use cases, then slowly work through your logic to achieve that. Rushing to complete, even for senior engineers, usually means less-than-ideal code that somebody will have to maintain.
7) Write documentation, always! Even if your company doesn't take documentation seriously, other engineers will remember how well documented your code is, and they will appreciate you for it/think of you next time that sweet job opens up.
8) Good code is important, but good impressions are better. I have code that is the most embarrassing crap ever still in production to this day. People don't think of me as "that shitty developer who wrote that ugly ass code that one time a decade ago," They think of me as "that developer who was fun to work with and busted his ass." Because of that, I've never been unemployed for more than a day. It's critical to have a good network and good references.
9) Don't shy away from the unknown. It's easy to hope somebody else picks up that task that you don't understand, but you wont learn it if they do. The daunting, unknown tasks are the most rewarding to complete (and trust me, other devs will notice.)
10) Learning is up to you. I can't tell you the number of engineers I passed on hiring because their answer to what they know about PHP7 was: "Nothing. I haven't learned it yet because my current company is still using PHP5." This is YOUR craft. It's not up to your employer to keep you relevant in the job market, it's up to YOU. You don't always need to be a pro at the latest and greatest, but at least read the changelog. Stay abreast of current technology, security threats, etc...
These are just a few quick tips from my experience. Others may chime in with theirs, and some may dispute mine. I wish you all fruitful careers!221 -
Very exciting news, just thought I’d share.
I was a computer engineering student before I left school to have my first child (and then second, third, and fourth).
I stayed at home for five years, out of necessity, not by choice, and struggled to get back into tech.
I eventually stared freelancing Wordpress sites, because in a small town, I didn’t have any other opportunities.
When not doing that, I took online classes and did side projects, mostly in Javascript.
This summer I got an internship at Mozilla through GNOME Outreachy doing python work.
It’s completely unreal to me...but I have been offered a contract-to-hire position with Mozilla.
After years of feeling like I would never succeed, I have my first real programming job.
Ridiculously awesome benefits and pay...
Holy fucking hell.32 -
For fucks sake I'm getting tired of this company. We have an app that's been developed on a VERY tight budget with a team and it's nearly completed/basically done few fixes here and there. They keep going to meetings with clients and promising more than the fucking app does! BITCH IT TOOK 6 MONTHS OF DEV TIME IF YOU WANTED THOSE OTHER FEATURES WHY DIDN'T YOU PUT IT IN THERE SOME FUCKING TIME.
And now since I'm in charge of the remnants of whats left, they keep asking me to make demos of ridiculous new features to show to new clients. BUT THATS NOT WHAT THE FUCKING UP DOES AND WERE OUT OF BUDGET!!!
I explain this. Every fucking day. I'm told they understand. Then I'm asked to make a fucking glittery demo with some bullshit features we don't have YET FUCKING AGAIN. BITCH I WILL QUIT THIS SHIT!
IF I SPEND ALL MY TIME MAKING THE FUCKING DEMOS, I CANT FINISH THE MAIN APP YOU FUCKTARDS. STOP PROMISING SHIT WE DONT HAVE!9 -
I'm the only programmer for my employer. Today I finished a GUI and engine to let our managers easily post annoucments to our TVs.
Nothing crazy; PHP login screen, some forms, small database, and the app to run on the TVs.
When I told my manager it was up and running she asks "Since you can build that, can you start working on a tool to run voice analytics off of our agents phone calls?".
Sure.. I'll get right on that.. Follow up with me in 4 years.8 -
If you do this, please, don't have children.
P.D. count the number of *if*srant kill me pliz thinking of my children frankencode bad code pichardo for president ng cry angular6 -
I was messing with my lemonbar + i3status config (with sway), when I decided to ditch i3status entirely and generate a status line using pure Awk. Battery is calculated from /sys/class/power_supply/BAT0, got workspaces (Material Design Icons) working, have a nice dated, and all colors match Solarized Dark from Vim. Have underlines, highlights etc. setup.
It's so beautiful :)4 -
Another dev on my team just got a new machine. Before he came in today I made two separate USB installers and left him these notes.60
-
Today I learned why it’s so important to have life outside engineering (better put, I remembered this).
For the last couple of weeks, we’ve been working hard to catch some deadlines, contributing to a large oss project. Getting up at 4am, working with the team in my timezone, having some time with family then working with people with 6-9 hour difference was extremelly challenging and I was so tired I literaly was a fucking pain to bear with.
Today, on Saturday, my wife started cleaning the bathroom sink drain. You know, started... “won’t fix” was not an option. First, the dirt and the smell, mmmmmm, you just have to love it. And then the thing collapses (yes, I was optimistic, trying to clean it just partly - I learned not to fix if it aint’t broken, I wonder where).
It’s of course built of trivial parts, but the water just finds its way. Needless to say, I am afraid of it :). In the end, it got resolved. Just as any bug we squash - with some anger and plenty of dirty words.
During the whole thing, I thought to myself, that all that stress at work is quite bearable; it put everything back into a perspective. Great feeling!1 -
Alright people, I'm gonna be blunt here, which is something not often seen from me. Thankfully this platform is used to it.
I am absolutely sick of people hating Windows/MacOS just because of the fucking practices of the companies. Let's take a look at a pro/con list of each OS type respectively.
Windows:
Pro - Most computers built for it
Pro - Average consumer friendly
Pro - Most games made for it
------------------------------------------
Con - Proprietary
Con - Shady info collection (disableable)
Con - Can take some work to customize
~
Linux:
Pro - Open source
Pro - Hundreds of versions/distros
Pro - Incredibly customizable on all fronts
------------------------------------------
Con - Can have limited modern hardware support
Con - The good stuff has a steep learning curve
Con - Tends to have unoptimized programs or semi-failed copies of Windows programs
~
MacOS:
Pro - Actually quite secure in general
Pro - Optimized to all hell (on Apple devices)
Pro - Usually just works
------------------------------------------
Con - Only (legally) usable on Apple devices
Con - Proprietary
Con - Locked down customization
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
See? None of them are perfect. Fucking get over it already. Maybe I want to use Windows because it works for me, and it actually does what I need it to. I can disable the spying shit through a few nice programs. Just because I work in IT doesn't mean that I HAVE to hate Windows and LOVE Linux! I mean, Linux is absolutely SPECTACULAR for all of my servers, but as a Desktop OS? Not there for me yet. Check one of my other rants: https://devrant.com/rants/928935/... and you'll see a lot of my gripes with Linux that Windows actually executes well. FUCK!38