Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
From the creators of devRant, Pipeless lets you power real-time personalized recommendations and activity feeds using a simple APILearn More
Search - "will learn eventually"
LONG RANT AHEAD!
In my workplace (dev company) I am the only dev using Linux on my workstation. I joined project XX, a senior dev onboarded me. Downloaded the code, built the source, launched the app,.. BAM - an exception in catalina.out. ORM framework failed to map something.
mvn clean && mvn install
same thing happens again. I address this incident to sr dev and response is "well.... it works on my machine and has worked for all other devs. It must be your environment issue. Prolly linux is to blame?" So I spend another hour trying to dig up the bug. Narrowed it down to a single datamodel with ORM mapping annotation looking somewhat off. Fixed it.
mvn clean && mvn install
the app now works perfectly. Apparently this bug has been in the codebase for years and Windows used to mask it somehow w/o throwing an exception. God knows what undefined behaviour was happening in the background...
Months fly by and I'm invited to join another project. Sounds really cool! I get accesses, checkout the code, build it (after crossing the hell of VPNs on Linux). Run component 1/4 -- all goocy. run component 2,3/4 -- looks perfect. Run component 4/4 -- BAM: LinkageError. Turns out there is something wrong with OSGi dependencies as ClassLoader attempts to load the same class twice, from 2 different sources. Coworkers with Windows and MACs have never seen this kind of exception and lead dev replies with "I think you should use a normal environment for work rather than playing with your Linux". Wtf... It's java. Every env is "normal env" for JVM! I do some digging. One day passes by.. second one.. third.. the weekend.. The next Friday comes and I still haven't succeeded to launch component #4. Eventually I give up (since I cannot charge a client for a week I spent trying to set up my env) and walk away from that project. Ever since this LinkageError was always in my mind, for some reason I could not let it go. It was driving me CRAZY! So half a year passes by and one of the project devs gets a new MB pro. 2 days later I get a PM: "umm.. were you the one who used to get LinkageError while starting component #4 up?". You guys have NO IDEA how happy his message made me. I mean... I was frickin HIGH: all smiling, singing, even dancing behind my desk!! Apparently the guy had the same problem I did. Except he was familiar with the project quite well. It took 3 more days for him to figure out what was wrong and fix it. And it indeed was an error in the project -- not my "abnormal Linux env"! And again for some hell knows what reason Windows was masking a mistake in the codebase and not popping an error where it must have popped. Linux on the other hand found the error and crashed the app immediatelly so the product would not be shipped with God knows what bugs...
I do not mean to bring up a flame war or smth, but It's obvious I've kind of saved 2 projects from "undefined magical behaviour" by just using Linux. I guess what I really wanted to say is that no matter how good dev you are, whether you are a sr, lead or chief dev, if your coworker (let it be another sr or a jr dev) says he gets an error and YOU cannot figure out what the heck is wrong, you should not blame the dev or an environment w/o knowing it for a fact. If something is not working - figure out the WHATs and WHYs first. Analyze, compare data to other envs,... Not only you will help a new guy to join your team but also you'll learn something new. And in some cases something crucial, e.g. a serious messup in the codebase.11
Here's my piece of advice for new devs out there:
1 - Pick one language to learn first and stick with it, untill you grasp some solid fundamentals. (Variables, functions, classes, namespaces, scope, at least)
2 - Pick an IDE, and stick with it for now. Don't worry about tools yet. Comment everything you're coding. The important thing is to comment why you wrote it, and not what it does. Research git and start using version control, even when coding by yourself alone.
3 - Practice, pratice and pratice. If you got stuck, try reading the language docs first and see if you can figure it out yourself. If all else fails, then go to google and stackoverflow. Avoid copying the solution, type it all and try to understand it.
4 - After you feel you need to go to the next level, research best practices first, and start to apply them to your code. Try to make it modular as it grows. Then learn about tools, preprocessors and frameworks.
5 - Always keep studying. Never give up. We all feel that we have no idea of what we are doing sometimes. That's normal. You will understand eventually. ALWAYS KEEP STUDYING.9
I turned 40 yesterday. Here are some lessons I've learned, without fluff or BS.
1) Stop waiting for exceptional things to just happen. They rarely do, and they can't be counted on. Greatness is cultivated; it's a gradual process and it won't come without effort.
2) Jealousy is a monster that destroys everything in it's path. It's absolutely useless, except to remind us there's a better way. We can't always control how we feel, but we can choose how we react to those feelings.
When I was younger, jealousy in relationships always led to shit turning out worse than it probably would have otherwise. Even when it was justified, even when a relationship was over, jealousy led me to burn bridges that I wished I hadn't.
3) College isn't for everyone, but you'll rarely be put square in the middle of so much potential experience. You'll meet people you probably wouldn't have otherwise, and as you eventually pursue your major, you'll get to know people who share your passions and dreams. Despite all the bullshit ways in which college sucks, it's still a pretty unique path on the way to adulthood. But on that note...
4) Learn to manage your money. It's way too easy to get into unsustainable debt. It only gets worse, and it makes everything harder. We don't always see the consequence of credit cards and loans when we're young, because the future seems so distant and undecided. But that debt isn't going anywhere... Try not to borrow money that you can't imagine yourself paying back now.
5) Floss every day, not just a couple times per week when you remember, or when you've got something stuck in your teeth. It matters, even if you're in your 20s and you've never had a cavity.
6) You'll always hear about living in the moment, seizing the day... It's tough to actually do. But there's something to be said for looking inward, and trying to recognize when too much of our attention is focused elsewhere. Constantly serving the future won't always pay off, at least not in the ways we think it will when we're young.
This sentiment doesn't have much value when it's put in abstract, existential terms, like it usually is. The best you can do is try to be aware of your own willingness and ability to be open to experiences. Think about ways in which you might be rejecting the here and now, even if it's as seemingly-benign as not going out with some friends because you just saw them, or you already went to that place they're going to. We won't recognize the good old days for what they were until they're already gone. The trick is having as many good days as possible.
7) Don't start smoking; you'll never quit as soon as you'll think you can. If you do start, make yourself quit after a couple years, no matter what. Keep your vices in check; drugs and alcohol in moderation. Use condoms, use birth control.
8) Don't make love wait. Tell your friends and family you love them often, and show them when you can. You're going to lose people, so it's important. Statistically, some of you will die young, yourselves.
When it comes to relationships, don't settle if you can't tell yourself you're in love, and totally believe it. Don't let complacency and familiarity get in the way of pursuing love. Don't be afraid to end relationships because they're comfortable, or because you've already invested so much into them.
Being young is a gift, and it won't last forever. You need to use that gift to experience all the love that you can, at least as a means to finding the person you really want to grow old with, if that's what you want. Regardless, you don't want to miss out on loving someone, and being loved, because of fear. Don't be reckless; just be honest with yourself.
9) Take care of your body. Neglecting it makes everything tougher. That doesn't mean you have to work out every day and eat like a nutritionist, but if you're overweight or you have health issues, do what you can to fix it. Losing weight isn't easy, but it's not as hard as people make it out to be. And it's one of the most important things you can do to invest in a healthy adulthood.
Don't put off nagging health issues because you think you'll be fine, or you don't think you'll be able to afford it, or you're scared of the outcome. There will always be options, until there aren't. Most people never get to the no-options part. Or, they get there because all the other options expired.
10) Few things will haunt you like regret. Making the wrong choice, for example, usually won't hurt as much. I guess you can regret making the wrong choice, but my deepest regrets come from inaction, complacency and indifference.
So how can we avoid regret? I don't know, lol. I don't think it's as simple as just commiting to choices... Choosing to do nothing is still a choice, after all. I think it's more about listening to your gut, as cliche as that sounds.
To thine own self be true, I guess. It's worth a shot, even if you fail. Almost anything is better than regret.14
And, the other side, husbands 😂
Dear Technical Support,
Last year I upgraded from Boyfriend 5.0 to Husband 1.0 and noticed a distinct slow down in overall system performance — particularly in the flower and jewelry applications, which operated flawlessly under Boyfriend 5.0. The new program also began making unexpected changes to the accounting modules.
In addition, Husband 1.0 uninstalled many other valuable programs, such as Romance 9.5 and Personal Attention 6.5 and then installed undesirable programs such as NFL 5.0, NBA 3.0, and Golf Clubs 4.1.
Conversation 8.0 no longer runs, and Housecleaning 2.6 simply crashes the system. I’ve tried running Nagging 5.3 to fix these problems, but to no avail.
What can I do?
First keep in mind, Boyfriend 5.0 is an Entertainment Package, while Husband 1.0 is an Operating System.
Please enter the command: ” C:/ I THOUGHT YOU LOVED ME” and try to download Tears 6.2 and don’t forget to install the Guilt 3.0 update.
If that application works as designed, Husband 1.0 should then automatically run the applications Jewelry 2.0 and Flowers 3.5. But remember, overuse of the above application can cause Husband 1.0 to default to Grumpy Silence 2.5, Happy Hour 7.0 or Beer 6.1.
Beer 6.1 is a very bad program that will download the Snoring Loudly Beta.
Whatever you do, DO NOT install Mother-in-law 1.0 (it runs a virus in the background that will eventually seize control of all your system resources).
Also, do not attempt to reinstall the Boyfriend 5.0 program. These are unsupported applications and will crash Husband 1.0.
In summary, Husband 1.0 is a great program, but it does have limited memory and cannot learn new applications quickly.
You might consider buying additional software to improve memory and performance. We recommend Food 3.0 and Hot Lingerie 7.7.
Alright, so you are a dishwasher and you do your job just fine.
And great news, the restaurant you work in is becoming THE restaurant in town.
To handle the volume you need to clean each dish within 30 seconds.
The pressure causes you to clean only the dishes that are easy to clean. Soup bowls come before ramekins with half-eaten Crème brûlée. This works for a while but it's self-defeating because not everyone is going to order soup and there is a growing shortage of clean "hard" dishes because you can only scrub so many of them to keep the chefs supplied. Eventually you are moving about 70% of the dishes in inventory at any given time and rarely used dishes have to sit filthy with their contents caking on until they are needed.
But Good news! Meet Jeb. He's the new dishwasher here to help. Efficiency! Except you have to stop and explain which dishes are easy and why they should come first. You have to share the sink, so you get a good helping of Jeb's rants about how things should have never gotten to this state and how nice the faucet was at the sink at the other restaurant.
In the interests of not making a scene in the kitchen and in front of any customers looking in, you smile and feed him a line of bullshit about how you understand and appreciate his thoughtful feedback. You'd rather just walk away and let him learn why being right doesn't buy him anything, but then you'd just be reprimanded. You and Jeb clean more and more until your moods match at a dead zone of benign acceptance thinly disguising your cynicism.
Still, part of you DOES understand Jeb. This SHOULD be simple. You pick a dish up, you scrub it until it's clean, and then you dry it. If only you could do that. If only the boss knew how hard you have to fight to do your job.
You privately go back and think about how much better things would be with some adjustments. Like, another sink. A dedicated dryer, be it person or a machine. Things that require investment, sure, but would more than make up for the value lost. You then remember that doing your job more efficiently would only bring more volume to perpetuate the cycle, assuming that you can even justify interruptions or reduced dish output to your boss.
You know that the root cause of your rush is really the customer's impatience and the business' fear of losing customers to a more convenient competitor, but that's not your job to fix. You are a dishwasher. You aren't here for the politics, you are here to wash dishes. But still you stew in a dance of wanting the power to fix what is broken while knowing you have no power to fix the most stubborn force on Earth: people.
You here a chef yell out that he needs 4 plates NOW (and not with spots on them this time, dammit), and you briefly fantasize about staring blankly into space, walking stiffly into a corner, dropping your pants, bending over, rumbling your butt cheeks, and blasting a thundershit like a 6-gauge all over the sink, the chefs, the food, fucking Jeb, and the customer body at large.
It didn't matter if you acted like a four-year old on amphetamines. The news would repeat your name for years as the dishwasher that wouldn't stand for the human condition as it stood, because the world needs to know that EVERY dishwasher's, no, EVERY WORKER's job would be simpler if it weren't for impatient consumers. And then things would change.
Pffffft lol. You laugh off your fantasy as the naive and selfish daydream that it is, then pick up the next soup bowl.
Now imagine everyone thinking this way, the dishes are invisible, the sink bowls are made of cracked cement, and the big customers will panic and attempt to raid the kitchen if they stop seeing food come out of the kitchen the instant they ask for it. And the boss asks you about your status every day while promising that you'll have time to clean the hard dishes one day.
This is Enterprise-level Software Engineering.3
Still trying to get good.
The requirements are forever shifting, and so do the applied paradigms.
I think the first layer is learning about each paradigm.
You learn 5-10 languages/technologies, get a feeling for procedural/functional/OOP programming. You mess around with some electronics engineering, write a bit of assembly. You write an ugly GTK program, an Android todo app, check how OpenGL works. You learn about relational models, about graph databases, time series storage and key value caches. You learn about networking and protocols. You void the warranty of all the devices in your house at some point. You develop preferences for languages and systems. For certain periods of time, you even become an insufferable fanboy who claims that all databases should be replaced by MongoDB, or all applications should be written in C# -- no exceptions in your mind are possible, because you found the Perfect Thing. Temporarily.
Eventually, you get to the second layer: Instead of being a champion for a single cause, you start to see patterns of applicability.
You might have grown to prefer serverless microservice architectures driven by pub/sub event busses, but realize that some MVC framework is probably more suitable for a 5-employee company. You realize that development is not just about picking the best language and best architecture -- It's about pros and cons for every situation. You start to value consistency over hard rules. You realize that even respected books about computer science can sometimes contain lies -- or represent solutions which are only applicable to "spherical cows in a vacuum".
Then you get to the third layer: Which is about orchestrating migrations between paradigms without creating a bigger mess.
Your company started with a tiny MVC webshop written in PHP. There are now 300 employees and a few million lines of code, the framework more often gets in the way than it helps, the database is terribly strained. Big rewrite? Gradual refactor? Introduce new languages within the company or stick with what people know? Educate people about paradigms which might be more suitable, but which will feel unfamiliar? What leads to a better product, someone who is experienced with PHP, or someone just learning to use Typescript?
All that theoretical knowledge about superior paradigms won't help you now -- No clean slates! You have to build a skyscraper city to replace a swamp village while keeping the economy running, together with builders who have no clue what concrete even looks like. You might think "I'll throw my superior engineering against this, no harm done if it doesn't stick", but 9 out of 10 times that will just end in a mix of concrete rubble, corpses and mud.
I think I'm somewhere between 2 and 3.
I think I have most of the important knowledge about a wide array of languages, technologies and architectures.
I think I know how to come to a conclusion about what to use in which scenario -- most of the time.
But dealing with a giant legacy mess, transforming things into something better, without creating an ugly amalgamation of old and new systems blended together into an even bigger abomination? Nah, I don't think I'm fully there yet.9
I've found sites like Udemy/Khanacademy/Codecademy/Brilliant/Edx to be very useful — possibly more useful than expensive education.
But they still need:
1. Better correction/update mechanisms. Human teachers make mistakes and material gets outdated, and while online teachers are rectified faster than classroom teachers, the procedure is still not optimal. Knowledge should be a bit more like a verified wiki.
2. Some have great interactive coding environments, some have great videos, some have awesome texts, some have helpful communities. None has it all. In the end, I don't want to learn a new language by writing code in my browser. It could all be integrated/synced to the point where IDEs have plugins which are synced to online videos, with tests and exercises built in, up to a social network where you could send snippets for review and add reviews to other people's code.
3. Accreditation. Some platforms offer this against payment, but I think those platforms often feel very old school (pun intended), with fixed schedules, marks and enrollments. Self paced is a must.
4. Depth is important. Current online courses are often a bit introductory. We need more advanced courses about algorithms, theoretical computer science, code design, relational algebra, category theory, etc. I get that it's about supply/demand, but we will eventually need to have those topics covered.
I do believe that for CS, full online education will eventually win from the classroom — it's still in its infancy, but has more potential to grow into correct, modern education.10
Realizing no programming language or concept or theory is too hard to learn. My retinas may burn out staring at my screens but I will get there eventually.3
Building a business can hamper one's development urges!
I have been building stuff since 2008. Took my first job in 2012, won a hackathon at Yahoo right after that. Got an amazing team to work with! Our team converted the hacked product into a proper product using Django and AngularJS. Those were the fun days. At that time AngularJS had just come out and I was under the dilemma to use Angular, Ember or backbone. But with all this came the responsibility to build a business out of our product. It didn't happen eventually though.
So I moved on to cure my entrepreneural itch and went on to start up an e-commerce startup along with my day job. It started getting good traction and I finally left my day job to focus completely on it. It's a sticker marketplace and I had to focus a lot on the actual physical product, improve the quality, tackle business development and stuff etc. In all this, my habit of creating stuff with code kind of got the back seat. Everyday, I see such exciting technologies come up and I want to try them out. I have been itching to create a native app using react native. Try to build a skill for Amazon Alexa.
On one side I am happy that I have been able to build a brand and become the largest sticker marketplace in India providing super awesome reusable stickers, but on the other hand, managing the business on a daily basis is killing the developer in me :(
Does anyone else building a business which involves a physical product also face a similar problem? I think I should just take up weekend hackathon type problems and try to solve them using the technologies I want to learn. Example, I have been meaning to build an app for our company. I think I will start with that!
I have been following devRant for quite sometime now and it has been awesome. Finally, signed up and ranted today! 😊😊5
It definitely helps to not be proud, especially to talk to people.
I was about to refactor something someone did, without understanding their intentions and because I thought it was incorrect.
Thank God I got off my high horse to talk to them first!
If you are shy or bad at approaching people (like me), just force yourself and try.. You will eventually learn to be less hesitant.1
In the last project i worked in, the product owner wouldn't treat people as people but as resources.
The problem with that is you just look at people and their work in terms of a checklist and remain blind about real humans face.
She wouldn't understand the challenges of building something with an absolutely new stack which people needed to learn from scratch and put pieces together. She wouldn't be supportive of people trying out things and fail.
One fine day I told her that I was spending too much time on meetings and i should be excluding that time from available sprint timings.. she made me open my calendar in a screenshare session with all team members. Made me go through go through every meeting invite i had on calender and ordered which ones should i be attending from then and which ones i wont. That was insulting. It broke the trust.
I decided to not work with the project. Stopped putting my heart and soul into it and eventually got out of it in a month time.
Don't put your team into a position like this ever. You have to trust them with the problems they face and try to find a solution. Scrutinizing and micro management will always kill the team.1
I spent over a decade of my life working with Ada. I've spent almost the same amount of time working with C# and VisualBasic. And I've spent almost six years now with F#. I consider all of these great languages for various reasons, each with their respective problems. As these are mostly mature languages some of the problems were only knowable in hindsight. But Ada was always sort of my baby. I don't really mind extra typing, as at least what I do, reading happens much more than writing, and tab completion has most things only being 3-4 key presses irl. But I'm no zealot, and have been fully aware of deficiencies in the language, just like any language would have. I've had similar feelings of all languages I've worked with, and the .NET/C#/VB/F# guys are excellent with taking suggestions and feedback.
This is not the case with Ada, and this will be my story, since I've no longer decided anonymity is necessary.
First few years learning the language I did what anyone does: you write shit that already exists just to learn. Kept refining it over time, sometimes needing to do entire rewrites. Eventually a few of these wound up being good. Not novel, just good stuff that already existed. Outperforming the leading Ada company in benchmarks kind of good. At the time I was really gung-ho about the language. Would have loved to make Ada development a career. Eventually build up enough of this, as well as a working, but very bad performing compiler, and decide to try to apply for a job at this company. I wasn't worried about the quality of the compiler, as anyone who's seriously worked with Ada knows, the language is remarkably complex with some bizarre rules in dark corners, so a compiler which passes the standards test indicates a very intimate knowledge of the language few can attest to.
I get told they didn't think I would be a good fit for the job, and that they didn't think I should be doing development.
A few months of rapid cycling between hatred and self loathing passes, and then a suicide attempt. I've got past problems which contributed more so than the actual job denial.
So I get better and start working even harder on my shit. Get the performance of my stuff up even better. Don't bother even trying to fix up the compiler, and start researching about text parsing. Do tons of small programs to test things, and wind up learning a lot. I'm starting to notice a lot of languages really surpassing Ada in _quality of life_, with things package managers and repositories for those, as well as social media presence and exhaustive tutorials from the community.
At the time I didn't really get programming language specific package managers (I do now), but I still brought this up to the community. Don't do that. They don't like new ideas. Odd for a language which at the time was so innovative. But social media presence did eventually happen with a Twitter account that is most definitely run by a specific Ada company masquerading as a general Ada advocate. It did occasionally draw interest to neat things from the community, so that's cool.
Since I've been using both VisualStudio and an IDE this Ada company provides, I saw a very jarring quality difference over the years. I'm not gonna say VS is perfect, it's not. But this piece of shit made VS look like a polished streamlined bug free race car designed by expert UX people. It. Was. Bad. Very little features, with little added over the years. Fast forwarding several years, I can find about ten bugs in five minutes each update, and I can't find bugs in the video games I play, so I'm no bug finder. It's just that bad. This from a company providing software for "highly reliable systems"...
So I decide to take a crack at writing an editor extension for VS Code, which I had never even used. It actually went well, and as of this writing it has over 24k downloads, and I've received some great comments from some people over on Twitter about how detailed the highlighting is. Plenty of bespoke advertising the entire time in development, of course.
Never a single word from the community about me.
Around this time I had also started a YouTube channel to provide educational content about the language, since there's very little, except large textbooks which aren't right for everyone. Now keep in mind I had written a compiler which at least was passing the language standards test, so I definitely know the language very well. This is a standard the programmers at these companies will admit very few people understand. YouTube channel met with hate from the community, and overwhelming thanks from newcomers. Never a shout out from the "community" Twitter account. The hate went as far as things like how nothing I say should be listened to because I'm a degenerate Irishman, to things like how the world would have been a better place if I was successful in killing myself (I don't talk much about my mental illness, but it shows up).
I'm strictly a .NET developer now. All code ported.6
One thing I learned over the years is that even when you think you can't do something or don't have the strength to do it, you actually can.
People do nothing better than to make excuses for themselves or blame others for the things they did without even considering that they could have done something about it.
The brain is a powerful processor to the point that when you think you're sick constantly your body will react accordingly.
Thing is though. If you don't take the opportunities that present themselves or don't look for them you'll probably get nowhere to the point where it could lead to depression.
Sure enough failures and mistakes happen all the time, ardly anything will go right the first time possibly leading to becoming demotivated and sometimes even depression.
Why? Because you forgot to think "what can I improve the next time"
A co-worker of mine keeps going back to his project he's working on because the boss has something in mind but somehow fails to translate it to him. He never stops to think what the desired functionality is compared to what it should do or look like (UI/UX). Eventually he snaps blaming the boss that he had to change it a couple of times.
This has happened multiple times since I started my Internship to the point where it just starts to irritate me.
Of course it's not always your fault but there are plenty of cases where it is or where you could have prevented it.
Mistakes and failures make you stronger only if you want to learn from them.
Have a good day
People who meet me in person seem to think I have my shit together because I managed to get out of poverty and build a decent life for myself but in reality, I am stuck in my severe incompetence.
I've been carrying around the "software engineer" title for more than half a decade, became a "senior" eventually, a title that I doubt I even deserve. I feel dumb most of the time. I spent more than half of my time in the field working in support. If I would disregard the years I spent working with IBM solutions (since most of the time, you don't build shit from scratch there), I would say I only officially started working as a "from scratch developer" last February 2019.
February 2019 - Python / AI
August 2020 - Go / Web Development
If you look at that, I probably have less experience than some junior developers. I have no specialty and have too many interests in and out of the field. I have no focus. Every time someone gives me a shit ton of review points during code reviews, I feel like this isn't the right field for me but I snap out of it anyway and think it would improve my skills as a developer.
There are plenty of things I know I should learn but refuse to do so because it makes no sense and for that reason, I know I will be phased out of this field soon. Just want to get that out of my chest because I hate it when people look up to me and see me as some kind of success story. Sure, I had my accomplishments but if you are looking for a role model, you might as well look at someone else.11
Frustrated, tired and a bit lost.
I'm a "Senior PHP Backend Dev", which includes not the greatest tech stack nor the best job title, but it pays fine, and the company is awesome to work for.
I suck at writing features, but I'm great at bitching, and I easily put complex abstract concepts into usable models. So I'm also QA, tester, tech lead, database architect, whatever.
That makes writing PHP less annoying, because I create the rules, and whip devs around when they forget a return type definition or forget to handle an edge case. But I don't write a lot of code anymore, I mostly read (bad) code.
Lately I REALLY feel like doing something else... problem is that I know JS/ES6, but really dislike React/Vue and the whole crappy modern frontend toolchainchootrain of babelifyingwebpackingyarnballs. I know Python/Tensorflow/etc, but don't feel like I want to go into data science or AI. And then I'm awesome at the shit no one uses, like Haskell, Go and Rust (and worse).
I got a job offer which combines a very interesting PHP codebase with a Java infrastructure, where I could learn a lot... and I'm kind of tempted.
Problem is, everyone always shits on Java. I always made a bit of fun of Java myself. Don't even know exactly why, probably some really cruel instinct which causes kids to bully the least popular kid.
I know the basics, I've written the hello world, and a small backend app for a personal project. I know how strict and verbose it can be. I love the strictness in Haskell and Rust.... but those are both also quite terse.
Should I become a Java dev? I'm not talking about Android SDK, but an insane enterprise codebase at a life sciences corporation.
To the pro Java devs: What are the best and worst things about your job, about the weekly processes, about the toolchains? Have you ever considered other languages? Do you unconditionally love and believe in Java, or do you believe Swift, Kotlin, Scala or whatever will eventually make it completely obsolete?
Will Java hasten my decline into the cynical neckbeard I was always destined to be?
There are a lot more fun langauges, but looking at realistic demand and career value...20
This whole experience thing is really killing me.
"We like you a lot and you seem to have a solid understanding of the core concepts but you just lack the experience we need"
I've heard that basic response from plenty of different potential employers. Granted they could be lying just to be nice but that doesn't help the situation either.
Like tell me where I am lacking and where to improve.
Yea I can learn on my own but they're a lot of things I will never think about touching or gain any knowledge of because it's not something I may ever need to dive into during just everyday apps. There is a difference in building a hobby app to learn and what goes into a full blown application handling thousands of users and all the data that can come along with it. Not to mention the kind of things that can go wrong when you have thousands of users on your app at the same time all doing different things. That's not something I can just have experience with. If I could just get in somewhere I can prove myself because then I will be doing it each and everyday.
Gotta keep grinding though, I'll get something eventually.2
1. Hit everything you do. You will learn more faster. Don't accept things at face value, care about why things work.
2. Study and experiment constantly. Be aware of your surroundings and what is going on. If you're not ready with a solution when a power vacuum appears, you will always be a grunt. Or worse, eventually a manager who everyone hates because you constantly tell the people who report to you how "back in your day," your code was amazing, there were no bugs and your shit doesn't stink.
3. Be honest with yourself: If you just want to keep your nose to the grindstone and make manager so you don't have to code anymore:
Quit. Stop now. Do not pass go, do not become a cancer on the industry.
Go get a job as a PM, you'll have a better career and you won't be the weak link holding everyone else back.
Tl;dr When the shit goes down, you better be ready.1
Saw this on Facebook and couldn't help but share here! 😂
A young woman submitted the tech support message below (about her relationship to her husband) presumably did it as a joke…
Dear Tech Support,
’Last year I upgraded from Boyfriend 5.0 to Husband 1.0 and noticed a distinct slowdown in overall system performance, particularly in the flower and jewelry applications, which operated flawlessly under Boyfriend 5.0.
In addition, Husband 1.0 uninstalled many other valuable programs, such as: Romance 9.5 and Personal Attention 6.5, and then installed undesirable programs such as: NBA 5.0, NFL 3.0 and Golf Clubs 4.1.
Conversation 8.0 no longer runs, and House cleaning 2.6 simply crashes the system. Please note that I have tried running Nagging 5.3 to fix these problems, but to no avail.
What can I do?
The response (that came weeks later out of the blue):
“First keep in mind, Boyfriend 5.0 is an Entertainment Package, while Husband 1.0 is an operating system. Please enter command: I thought you loved me.html and try to download Tears 6.2 and do not forget to install the Guilt 3.0 update. If that application works as designed, Husband 1.0 should then automatically run the applications Jewelry 2.0 and Flowers 3.5.
However, remember, overuse of the above application can cause Husband 1.0 to default to Grumpy Silence 2.5, Happy Hour 7.0 or Beer 6.1. Please note that Beer 6.1 is a very bad program that will download the Farting and Snoring Loudly Beta.
Whatever you do, DO NOT, under any circumstances, install Mother-In-Law 1.0 (it runs a virus in the background that will eventually seize control of all your system resources.)
In addition, please, do not attempt to re-install the Boyfriend 5.0 program. These are unsupported applications and will crash Husband 1.0.
In summary, Husband 1.0 is a great program, but it does have limited memory and cannot learn new applications quickly. You might consider buying additional software to improve memory and performance. We recommend: Cooking 3.0.Good Luck!’
I have been creating mods for Skyrim and Fallout for a few years now. One day another modder wanted to make his own game using Unreal Engine 4. I wanted to learn UE4 anyway and the other members have made many mods before, so I joined in.
Well, it turned out I was the only one with a professional programming background (this is where I should have run). The others were all modders who somehow got their shit working. "It works, so it's good enough right?" On top of that UE4 has a visual scripting system called Blueprint. Instead of writing code you connect function blocks with execution lines. Needles to say that spaghetti code gets a whole new meening.
There was no issue board, no concept, no plan what the game should look like. Everyone was just doing whatever he wants and adding tons of gameplay mechanics. Gameplay mechanics that I had to redo because they where not reusable, not maintainable or/and poorly performing.
Coming from a modding background, they wanted to make the game moddable. This was the #1 priority. The game can only load "cooked" assets when it got packaged. So to make modding possible, we needed to include the unpacked project files in the download. This made the download size grow to 20+ GB. 20 GB for a fucking sidescroller. Now, 1 year after release we have one mod online: Our own test mod.
Well we "finished" the game eventually and it got released on Steam. A 20 GB sidescroller for $6.99. It's more like a $2.99 game in my opinion. But instead of lowering the price they increased it to $9.99, because we have spent so much time creating the game. Since that we selled less than 5 more copies. And now they want to make it work on mobile. Guess who will definetly NOT help them.
I have spent ~6 month of my freetime for this project, my rev share is < 100€ and they got me a lot of headaches with all their dumb decisions. Lesson learned. But hey, I am pretty good with UE4 now.4
So about 3 weeks ago I was laid off from my dream job due to corporate bullshit. From the feedback received since then it is clear that the company made a mistake hiring a brand new React dev while they really needed an experienced one. Because the consultants who were supposed to be weren't. And the other in-house front end dev was an elitist asshole. And I never received proper feedback until it was too late. Actually I still don't have proper feedback save for some vague stuff which really sounds like the kind of feedback you'd give someone in the middle of their learning process. They even said eventually given more time I could have made it. But alas they felt they had to make a call in the best interest of the company.
Things moved fast since then, I took a week to recover and then I spent time updating my resume before getting back in touch with the recruiter who got me my last job. Great guy and he was happy to help me again. Applied to some positions, got some replies, first in person interview I go to they are immediately willing to take me on.
So now I'm supposed to start tomorrow but somehow I'm having my doubts. The company isn't an IT company but rather a fashion company. They believe in developing in house tools because past attempts with external companies resulted in them trying to push their vision through. Knowing who they worked with I agree, they tried to oversell all the time. But after talking with their developers I noticed they are behind on their knowledge. But so am I. So there was no tech interview which means I am getting an easy way in. And if they honour their word I'll be signing tomorrow for around my old wages.
So you'd think that sounds good right? And yet I'm worried it's going to be another shit show working on software without proper analysis or best practices. I mean the devs aren't total idiots, they are mediors like me and I think their heart is in the right place. They want to develop a good project but it will be just us 3 making a modern .net wpf application with the same functionality of the old Access based system currently in use. I was urged by the boss to draw on my experience and I think he wants me to help teach them too. But I'm painfully aware for my decade since graduating I'm a less than average .net dev who struggles with theory and never worked a job where I had someone more experienced to teach me. I coasted most of the time in underpaid jobs due to various reasons. But I'd always get mad over shitty code and practices. Which I realize is hypocritical for someone who couldn't explain what a singleton class is or who still fails at separation of concerns.
So yeah my question for the hivemind is what advice would you give a dev like me? I honestly dislike how poor I perform but it often feels like an insurmountable climb, and being over 30 makes it even more depressing. On the other hand I know I should feel blessed to find a workplace who seems to genuinely believe that people grow and develop and wishes to support me in this. Part of me thinks I should just go in, relax, but also learn till I'm there where I want to be and see if these people are open to improving with me. But part of me also feels I'm rushing into this, picking the first best offer, and it sure feels like a step backwards somehow. And that then makes me feel like an ugly ungrateful person who deserves her bad luck because she expects of others what she can't even do herself :(4
VIM! ViM! vim! Vi Improved! Emacs (Wait ignore that one). What’s this mysterious VIM? Some believe mastering this beast will provide them with untold mastery over the forces of command line editing. Others would just like to know, how you exit the bloody thing. But in essence VIM is essentially a command line text editor at heart and it’s learning curve is so high it’s a circle.
There’s a lot of posts on the inter-webs detailing how to use that cruel mistress that is VIM. But rather then focus on how to be super productive in VIM (because honestly I’ve still not got a clue). This focus on my personal journey, my numerous attempts to use VIM in my day to day work. To eventually being able to call myself a novice.
My VIM journey started in 2010 around the same time I was transiting some of my hobby projects from SVN to GIT. It was around that time, that I attempted to run “git commit” in order to commit some files into one of my repositories.
Notice I didn’t specify the “-m” flag to provide a message. So what happened next. A wild command line editor opened in order for me to specify my message, foolish me assumed this command editor was just like similar editors such as Nano. So much CTRL + C’ing CTRL + Z’ing, CTRL + X’ing and a good measure of Google, I was finally able to exit the thing. Yeah…exit it. At this moment the measure of the complexity of this thing should be kicking in already, but it’s unfair to judge it based on today’s standards of user friendly-ness. It was born in a much simpler time. Before even the mouse graced the realms of the personal computing world.
But anyhow I’ll cut to the chase, for all of you who skipped most of the post to get to this point, it’s “:q!”. That’s the keyboard command to quit…well kinda this will quit the program. But…You know what just go here: The Manual. In-fact that’s probably not going to help either, I recommend reading on :p
My curiosity was peaked. So I went off in search of a way to understand this: VIM thing. It seemed to be pretty awesome, looking at some video’s on YouTube, I could do pretty much what Sublime text could but from the terminal. Imagine ssh’ing into a server and being able to make code edits, with full autocomplete et al. That was the dream, the practice…was something different. So I decided to make the commitment and use VIM for editing one of my existing projects.
So fired the program up and watched the world burn behind me. Ahhh…why can’t I type anything, no matter what I typed nothing seemed to appear on screen. Surely I must be missing something right? Right! After firing up the old Google machine, again it would appear there is this concept known as modes. When VIm starts up it defaults to a mode called “Normal” mode, hitting keys in this mode executes commands. But “Insert” entered by hitting the “i” key allows one to insert text.
Finally I thought I think I understand how this VIM thing works, I can just use “insert” mode to insert text and the arrow keys to move around. Then when I want to execute a command, I just press “Esc” and the command such as the one for saving the file. So there I was happily editing my code using “Insert” mode and the arrow keys, but little did I know that my happiness would be short lived, the arrow keys were soon to be a thorn in my VIM journey.
Join me for part two of this rant in which we learn the untold truth about arrow keys, touch typing and vimrc created from scratch. Until next time..
I'm reinventing the wheel by making yet another neural network library. It's not any good yet but I learn as I go along.
The only documentation that exists now is the admittedly quite comprehensive code comments. I'm it because Keras (using TensorFlow) requires a 3.5 compute ability rating for CUDA acceleration (which I don't have) and it doesn't support OpenCL. Eventually, I will make my implementation support both with varying levels of acceleration for different compute capabilities with the oldest supported being my hardware. If I ever get around to it.
I'd say wish me luck but determination would be infinitely more useful.2
I need to rant about life decisions, and choosing a dev career probably too early. Not extremely development related, but it's the life of a developer.
TL;DR: I tried a new thing and that thing is now my thing. The new thing is way more work than my old thing but way more rewarding & exciting. Try new things.
I taught myself to program when I was a kid (11 or 12 years old), and since then I have always been absolutely sure that I wanted to be a games programmer. I took classes in high school and college with that aim, and chose a games programming degree. Everything was so simple, nail the degree, get a job programming something, and take the first games job that I could and go from there.
I have always had random side hobbies that I liked to teach myself, just like programming. And in uni I decided that I wanted to learn another language (natural, not programming) because growing up in England meant that I only learned English and was rarely exposed to anything else. The idea of knowing another fascinated me.
So I dabbled in a few different languages, tried to find a culture that seemed to fit my style and attitude to life and others, and eventually found myself learning Korean. That quickly became something I was doing every single day, and I decided I needed to go to Korea and see what life there could be like.
I found out that my university offered a free summer school program for a couple of weeks, all I had to pay for was the flights. So a few months later I was there and it was literally the best thing I'd done in my life to that point. I'd found two things that made me feel even better than the idea of becoming the games programmer I'd always wanted to be. Travelling and using my other language to communicate with people that I couldn't in English. At that point I was still just a beginner, but even the simple conversations with people who couldn't speak English felt awesome.
So when I returned home, I found that that trip had completely thrown a spanner into my life plan. All I could think about after that was improving my language skills and going back there for as long as possible. Who knows what to do.
I did exactly that. I studied harder than I'd ever studied for anything and left the next year to go and study in Korea, now with intermediate language skills, everyday conversations no longer being a problem at all.
Now I live here, I will be here for the next year and I have to return to England for one year to finish my degree. Then instead of having my simple plan of becoming a developer, I can think of nothing I want to do less than just stay in England doing the same job every day, nothing to do with language. I need to be at least travelling to Korea, and using my language skills in at least some way.
The current WIP plan is to take intensive language classes here (from next week, every single weekday), build awesome dev side projects and contribute to open source stuff. Then try to build a life of freelance translation/interpreting/language teaching and software development (maybe here, maybe Korea).
So the point of this rant is that before, I had a solid plan. Now I am sat in my bed in Korea writing this, thinking about how I have almost no idea how I'm going to build the life that I want. And yet somehow, the uncertainty makes this so much more exciting and fulfilling. There's a lot more worrying, planning and deciding to do. But I think the fact that I completely changed my life goals just through a small decision one day to satisfy a curiosity is a huge life lesson for me. And maybe reading this will help other people decide to just try doing something different for once, and see if your life plan holds up.
If it does, never stop trying new things. If it doesn't (like mine), then you now know that you've found something that you love as much as or even more that your plan before. Something that you might have lived your whole life never finding.
I don't expect many people to read this all, but writing it here has been very cathartic for me, and it's still a rant because now I have so much more work and planning to do. But it's the good kind of work.
Things aren't so simple now, but they're way more worth it.3
For as long as I can remember I watched my dad at his computer doing work and programming, so I got interested in computers. I started using and mastering computer skills when I was 5 and helped people with their computer problems. I was hesitant to learn how to program because it looked hard, but I eventually have I'm and started to learn Java at 12. I started by making Bukkit plugins for Minecraft (1.7.10). I learned to program, because I knew that computers will one day help people, and I wanted to help people too.2
I am new to open source, so i was trying to solve some issues on an organisation. At first it seemed like what the hack is happening, i was not able to understand the codebase that well but slowly and eventually i get to learn some stuff.
Now, i got stuck at a small problem and to solve that problem it took me a whole complete week. During that phase, i realized some things that i want to share.
As a beginner it was too hectic to find the solution to that problem so i entered that problem on every platform from where there is some chances for reply, and i realized that no one is going to help you out completely and this is the best part, i mean if someone is going to spoon feed you than you won't learn anything. I know that feeling when you are scratching your head and you just want to get out of that mess but you are stuck and there is no one to help you out, believe me just hang in there, there will be some moments when you will realize that there is no more options left and you are done than for sure you will find something which you can try.
So you should also not ask for spoon feed, if you want to learn than fall into many problems as you can.
Best of luck.5
Hello Devrant. I really need a second opinion on this one. I work in this promising start-up and our current evaluation is about 10 mill $. I have a vesting opportunity in the company where I earn 2.5% of none dilutable shares in the company over three years. I also get salary of about 500$ a month just to survive. Though it is the plan that I get a decent salary once we have more funding secured.
I'm the CTO of the company where we are 10 employees in total and 5 are in the development team.
I've been programming for about one year now so I'm not that experienced and some of the guys I lead are much more experienced than me. Which is good because I grow my skills quickly, but it is a challenge sometimes.
I'm really in doubt if I have got a good deal in the company. I started working in February and back then the company was valued at around 1.5 mill $. I have always been loose about not demanding money right away and said to the CEO that we will figure that out about the money eventually and I trusted him blindly. When he gave the offer of 2.5% vesting I just accepted it right away, because I was a beginner in coding and I just wanted to learn. Also I was traveling around the world for a few months at the time and it was a great way to get a little money quickly.
I also study together with two colleges who are some of my best friends. We study business development at university and have round 1.5 year left. It's a lot of work
but we've managed to only study about 1 week in advance of the exams and still pass. So we all still working full time on the company.
I've never known how many shares the other guys had, but yesterday me and the other partners had a meeting about some contract and the CEO pointed out how many shares everybody had. I was stunned to hear that the my two other colleges that I study with have 10% each. And the reason for that is that they helped start the company from the beginning and I've only joined when it was around 6 months old. Still I find it difficult to that that it's fair that they should have 4 times as much as me. I would say the amount of value we provide to the company is about the same. One of the guys is only the son of the CEO, which should not change anything.
For me it's not all about the money but I don't want to be taken advantage of. I can't determine if I'm being overdramatic about this and whether it is a good deal or if it sucks and I should find another place to work. Also my studies at the University are pretty much intertwined with the company by now. All our school projects are something that creates value to the company and if I leave I would have to dramatically change the direction of my education.
I know that there is a lot of information here and that I'm not the best at writing, but what would you have done in my situation?7
Everytime I consult with senior devs on how to transition from my sysadmin job and get my first dev job they always tell me to get a CS degree.
Look. I will get that fucking degree eventually. But I want to build up dev skills and learn from a company before killing myself over math crap for 3 years. But it's like a vicious cycle. Every junior position I apply to rejects me because I have no degree.
I'm fucking frustrated and depressed.
What should I do? I want to break from the IT meme and get a dev job.
In the meantime I'm doing small projects and freelancing in my very little free time. But I feel I'll never truly be a developer until I work as one professionally.4
Well, atom won't open. SO, what's the next free editor I will learn to use, configure exactly right, and then need to abandon because it won't fucking open for no apparent reason?
Sure, I could become a certified Atom expert and learn exactly what is going on, but I HAVE FUCKING WORK THAT IS DUE WHAT THE FUCKING HELL
Wishing I could afford PyCharm, maybe I will just try the trial since EVERY editor I have ever used eventually becomes unusable at some point.22
For the new/aspiring developers:
1. If you are still looking to learn more, but you don't know where to go, start brainstorming. Make a list of projects you could make and sort them by difficulty. Put the ones you could do now at the top of the list, and the ones you aren't sure how to do yet, at the bottom of the list. As you go through them, if you want to do something but aren't sure how, just hop onto an irc chat and everyone will be glad to help. As you go through the projects, your logic and program design skills should improve, as well as your knowledge of programming.
2. Put comments in your code. Seriously. If you are working on a project and suddenly stop working on it for a week or more, you will go back to look at that code and be extremely confused. If you are making something open source, its even more important. If people can understand the code, they are more likely to contribute to it.
3. Try not to focus on code for too long. The longer you work, the more tired your brain gets. Eventually you get tired and make really stupid decisions in your code.
4. Don't code while tired (look at #3)
5. If you are writing code as an assignment, make sure to rename all variables to proper names before submitting it. The instructor will likely not be pleased to see variable names with the f-bomb in them.
I gave a very small overview of the flutter sdk a whiiiile ago and I have been thinking about going back to it. Currently considering between 2 courses on udemy that are at a discount price. I love the idea of dart as a language and prefer declarative ui building over xml shittyness. I was an Android/ios development for 2 years and hated every minute of it, but really love the idea of building mobile apps.
What are your thoughts and considerations on this? Should I jump right in or just leave it asside? What are your success stories with flutter and what did you use to learn the framework besides the docs? How easy are things like state management and persistent storage with flutter compared to android and ios?
I will eventually make my own decission by building sample projects, but hearing from the community would be great.5
TL;DR: Computers and I go way back, but I don't know how I ended up as a dev - and am still not certain that's what I want to do for the rest of my life.
Rewind to the early 80's. My friends at the time got the Comodore 64 one after the other. I never got one. Heck, we didn't even have a color TV back then. Only a 12/14" small B&W TV. It's easy to conclude that I spent a lot of time at my friends'.
Back then it mostly was about the games. And, living in the rural countryside, the only way to aquire games was to pirate them. Pirating was big. Cassette tape swapping and floppy disk swapping was a big deal, and gamers contacted eachother via classifieds sections in newspapers and magazines. It was crazy.
Anyways. The thing about pirated games back then is that they often got a cracktro, trainer, intro or whatever you want to call them - made by the people who pirated the game. And I found them awesome. Sinus scrollers, 3D text, cool SID-tunes and whatnot. I was hooked.
My best friend and I eventually got tired of just gaming. We found Shoot'Em-Up Construction Kit, which was an easy point-and-click way to create our first little game. We looked into BASIC a bit. And we found a book at the library about C64 programming. It contained source code to create your own assembler, so we started on that. I never completed it, but my friend did.
Fast forward through some epic failure using an Amstrad CPC, an old 486 and hello mid 90's. My first Pentium, my first modem and hello Internet! I instantly fell in love with the Internet and the web. I was still in school, and had planned to enter the creative advertising business. Little did I know about the impact the web would have on the world.
I coded web pages for fun for some years. My first job was as a multimedia designer, and I eventually had to learn Lingo (Macromedia Director, anyone?) And Actionscript.
Now I haven't touched Flash for about 7 years. My experience has evolved back to pure web development. I'm not sure if that's where I will be in the future. I've learned that I certainly don't know how to do everything I want to do - but I have aquired the mindset to identify the tasks and find solutions to the problem.
I never had any affiliation with the pirate scene or the demo scene. But I still get a little tingling whenever I see one of those sinus scrollers.
I have an interest in methods to make myself smarter. At times some ideas seem to be just out of my reach. I don't always know the reason why. Eventually with persistence I am able to figure things out. However, I always wonder if there are techniques to learn things faster, better, more completely, with less struggle, etc. Would being smarter help with this. I wondered, "Can I create a program/method to increase IQ through training?"
So I found an interesting book called "The Neuroscience of Intelligence" by Richard J. Haier.
Very quickly I was engrossed in this book. It is written in a very accessible way and slowly trickles in the jargon. The book is basically the culmination of 40 years of studying the subject. The main point of the book is: you cannot increase your IQ through techniques and tricks. The only realistic avenue for increasing IQ is through genetics. Your IQ is based upon nature, not nurture. This is a result of the data, not opinion. The writer of this book follows what the science is telling him. This was not what I wanted to hear. He also went on to explain that the statement "You can be whatever you want to be if you work hard enough." He said this is false. Some people, no matter how hard they try, will not be able to get past certain limitations in aptitude. This statement will probably make a lot of people mad, but the data led this researcher to this conclusion. Though I sense he found this disheartening (my opinion). I know I did.
So after reading this book over the weekend I am a bit perturbed that there are not recognizable techniques to increase IQ through mental exercises. Websites all over will say otherwise, but it isn't a thing.
What to do? I decided I am going to find ways to maximize my potential. I will create a set of mental exercises that help me use what I got to the full potential. I know when I see different ways to think about things I get a bit better at solving problems. So learning and experience is still a way to improve your intellect, if not IQ. If I feel like I have made progress in this endeavor I will definitely share.
If you have any interest in neuroscience then I recommend the book I read this weekend. It is very accessible for the reader not versed in the subject. I knew virtually nothing about the topic and now I feel I have a good grounding in the state of the art. It has some neat info on some potentially better approaches to AI as well.7
Reply to my 2018 version: https://devrant.com/rants/1346392/...
Dear holodreamer ( version 2018 ),
I'm just glad that I'm still alive now. You won't believe how terrible 2020 is at the moment! Anyways, a lot has happened since you wrote me and I'm gonna reply it all to you.
Thanks for noticing. I really like my hairstyle now and my insecurity of going bald have gone. I couldn't be more happy.
Unfortunately, I'm not financially independent yet. Thanks to the crypto crash, the crypto ban in the country and some bad calls on my end. :/. But the good news is that we are back on the crypto market as the ban has been lifted recently. I don't have enough crypto to buy a lambo or go to the moon, but I have something that I could give to my grand kids. At this point, I don't really care anymore how much the value it is going to be, I have come to learn to think them of as a souvenir.
Your prediction of me preparing to move out of country seems to have come true. Honestly, I had given up that dream, but thanks to one of my best friend for reigniting those dreams - I may be moving somewhere really better by next year. I hope that I get this financial independence thing figured out before I move there. I don't wanna live there paycheck to paycheck.
Fortunately, I'm not getting any pressure to get married yet. I think I'm heading the way to a better life filled with some travel and adventures. I had a great opportunity to attend Google I/O 2020, but it got cancelled. Hopefully, covid19 will be over in few months.
Yea, I remember her. I got really carried away to the point that things she said started to hurt my heart. But eventually we had some argument and we stopped talking last September and I cut all contacts with her on the new years. If it makes you feel any better, last time i checked, she looks quite plumpy and totally different.
Thankfully, I'm not that lonely to need a chat bot. But I found some good online friends. They are fun to talk to.
Thinking about you, I feel some guilt for wasting your potential. I could have done much better if I was little more careful and responsible with you. I don't wanna make 2022 version of me feel bad for me.
holodreamer ( version 2020 )2
I was so excited to learn React Native and I know basics of React too, so I thought it will be fine.
Spent one and half hour watching video and I was happy that I'm almost gonna finish this and last point was Navigator......
Got error its deprecated and have to take another way. I'm still searching how to do it and eventually now I'm not in mood of learning that.... Fml1
At some point I need to do an older project i've had on hold a while, but it'd require writing my own ROM patch system as a major step in completing it, as i'd need to dynamically patch stuff into older games based on system, which current patch formats don't allow for. (This project will also help me learn a few things I need for yet more projects I've got stashed away, so it needs to happen eventually.)
Now, the interesting part: the patch format. I was debating on whether to use binary data, like IPS/BPS and similar formats do, which would be easier to implement... but if I were to have plaintext patches, you'd be able to not only understand what's happening, but also have things like scripting and conditionals and user-defined options and such. This would be WAY harder to implement, slow as fuck, and require an assembler per-target-system, either external or internal... but it'd be transparent, editable, and hella extendable.
This would all happen after I'm both over my burnout AND done chewing through my current stack of projects and such, of course, but still... which sounds better to you, dear reader?2
Having a lot of bad experiences while working as intern in startups and about to join a MNC, i wanted to share my work life balance and technical demands that i expect from a company. These are going to be my list of checkpoints that i look forward , let me know which of them are way too unrealistic. also add some of yours if i missed anything :
Work life balance demands ( As a fresher, i am just looking forward for 1a, 2a and 8, but as my experience and expertise grows, i am looking forward for all 10. Would i be right to expect them? ):
1a 8 hr/day. 1b 9h/day
2a 5days/week. 2b 6 days/week
3 work from home (if am not working on something that requires my office presence)
4 get out of office whenever i feel like i am done for the day
5 near to home/ office cab service
6 office food/gym service
7 mac book for working
8 2-4 paid leaves/month
9 paid overtime/work on a holiday
10.. visa sponsorship if outside india
Tech Demands (most of them would be gone when i am ready to loose my "fresher " tag, but during my time in internship, training i always wished if things happened this way):
1. I want to work as a fresher first, and fresher means a guy who will be doing more non tech works at first than going straight for code. For eg, if someone hires me in the app dev team, my first week task should be documenting the whole app code / piece of it and making the test cases, so that i can understand the environment/ the knowledge needed to work on it
2. Again before coding the real meaningful stuff for the main product, i feel i should be made to prepare for the libraries ,frameworks,etc used in the product. For eg if i don't know how a particular library ( say data binding) used in the app, i should be asked to make a mini project in 1-2 days using all the important aspects of data binding used in the project, to learn about it. The number of mini tasks and time to complete them should be given adequately , as it is only going to benefit the company once am proficient in that tech
3. Be specific in your tasks for the fresher. You don't want a half knowledgeable fresher/intern think on its own diverging from your main vision and coding it wrong. And the fresher is definitely not wrong for doing so , if you were vague on the first place.
4. most important. even when am saying am proficient , don't just take my word for it. FUCKIN REVIEW MY CODE!! Personally, I am a person who does a lot of testing on his code. Once i gave it to you, i believe that it has no possible issues and it would work in all possible cases. But if it isn't working then you should sit with me and we 2 should be looking, disccussing and debugging code, and not just me looking at the code repeatedly.
4. Don't be too hard on fresher for not doing it right. Sometimes the fresher might haven't researched so much , or you didn't told him the exact instructions but that doesn't mean you have the right to humiliate him or pressurize him
5. Let multiple people work on a same project. Sometimes its just not possible but whenever it is, as a senior one must let multiple freshers work on the same project. This gives a sense of mutual understanding and responsibility to them, they learn how to collaborate. Plus it reduces the burden/stress on a single guy and you will be eventually getting a better product faster
Am i wrong to demand those things? Would any company ever provide a learning and working environment the way i fantasize?3
I think promoting 'a quick lookup on Google' every single time you need to add something useful into your codebase is a bad mentality. It's the same problem with populating your code with Stackoverflow snippets.
I think this is not a good approach because your code will eventually rot and you won't have full control over your codebase in that you didn't write those parts and you don't fully know what's going on underneath. Then, you will forget about that code. A new feature request will come up and oh no, you will be wrestling with your old code because you just quickly inserted it in there, not fully knowing it under the hood. Hours will be lost on debugging.
I advocate much more the approach of really knowing the language and the solutions you're using, instead of just constantly hacking it with the excuse of "Oh, there's no time to learn everything", "You don't need to know the details" and "This is the real world".
No, this is not a good attitude. With the former approach, you will be much more able to safeguard your code and improve on it, rather than wrestling for hours with it. I think it's important to have as much ownership of your code as possible and depend as little on outside libraries as possible.
Fundamentals first, practicality second.2
all this talk of australian crypto laws got me thinking. here's a hypothetical (this might get a little complicated):
for the sake of the security facade, the government decides to not ban encryption outright. BUT they decide that all crypto will use the same key. therefore you can not directly read encrypted things, but it's not really encrypted anymore is it?
part two: there's a concept called chicken sexing, named after people who determine the sex of baby chicks. male chicks are pretty useless and expensive to keep alive, so they are eaten. female chicks go on to lay eggs, so ideally, from a financial standpoint, you only raise hens to maturity. this is nearly impossible to discern early on so at first you're just straight up guessing. is this one female? sure? that one? no? really 50/50. BUT if you have a skilled chicken sexer looking over your shoulder, saying right or wrong, then eventually you get better. why? nobody knows. they can't explain it. nobody can. you just sort of "know" when it's female or not. some people can do 1000s of chicks/hr with success up to 98% but nobody can explain how to tell them apart.
part three. final part:
after years, even decades of using this encryption with only one key, I wonder if people (even if only people who are regularly exposed to crypto like NSA analysts or cryptographers) can ever learn to understand it. in the same way as above. you don't know exactly what it says. or how you know it. you didn't run an algorithm in your head or decrypt it. but somehow you get the gist.
28464e294af01d1845bcd21 roughly translates to "just bought a PS5! WOOT!" or even just pick out details. PS5. excited. bought.
but how do you know that? idk. just do.
oh what a creepy future it has become.8
I'm an Angular frontend Dev and the backend is python. I don't know python. Manager deployed me to a the project as a full stack. I said I don't know python and still I got the project lol. They hired another python guy to do the backend. Now my manager said me to they committed to the client that the full stack Dev (which I Am) will learn Python eventually (then maybe fire in the future the python guy because I will be the full stack God) The thing is I hate python and only want to do angular.
Now I'm forced to learn Python with this big code base backend. Talking about multiple hats. Maybe soon I will also be the DevOps guy lol have you experienced this before?5
Exhausted af. Since Sunday been trying to get a decade old social grants payment delphi app that ran on win xp to work; and this is a couple of exes on different client/server machines communicating with cash dispensers, fingerprint readers, receipt printers as well as webcam. Apparently someone is searching archives for the source code which I will have to eventually customise to whatever the fuck "management" wants cause they want to "revive" the system. Ohh and by the way I'm not a delphi dev so now I'll have to learn