Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "still a novice"
On being a woman in tech...
You lads probably have (and my fellow ladies certainly have) heard of "impostor syndrome" and, if you don't experience it, you possibly wonder what living with it is like.
Here's an example from this weekend.
Be me, about 5 years into my career, graduated from a top college, feeling decent but still unsure of skill.
Company gets a 4 week trial of an online learning website. It includes optional assessments, so that you know where in the video lessons to start. Rankings are novice, proficient, expert.
Hear from our QA that he got ranked "proficient." Which is a pretty broad category, but I become super afraid that I'll also be assessed as "proficient" and it will look like I have the same dev skills as a fucking QA (our management overlords can see our scores).
Boyfriend has me do some deep breathing before starting the test, because it's obvious how stressed I am.
Finally take it and get ranked "expert", in the 97th percentile, even though some technical difficulties made me miss four questions in a row. I decide to use my do over, and get ranked "expert" again, this time in the 99th percentile.
You'd think I'd be like, "Lawl, I can't believe I'd get the same score as our QA!" And there is some of that. But there's also the thoughts of, "that test could have been more thorough," "that score wasn't real because I resaw a question and got the right answer the second time," and "99th percentile isn't that great on a platform where new developers are over represented."
And this is all despite the fact that, if you were to ask someone how confident I am, the answer would probably "confident as hell."
Not saying this to start any fights. Figured it could be some interesting insight into a world that some people don't experience! (not that males aren't allowed to have impostor syndrome!)16
My friend loves Dreamweaver... And continuously says that he doesn't understand what people see in it that is so wrong... It does the job right?...... Fucking blind...
Uses a bootstrap plugin which generates HTML code for bootstrap.
I did not know this at the time.
Comes to me the night before submission.
He: Dude i need help quick! I've got the presentation tomorrow morning and bootstrap fucked up the links to my style sheets or something, my page is broken and won't work. I should have done what you did and gone for Foundation...
Me: Yeah, because the bootstrap framework definitely affects the style links...
He: help me out man, please! I can't do this anymore!
I had my submission the day after him to prepare still...
Me: Teamviewer. Now.
Log on to Teamviewer.
See what he's using to code...
I go through the code. There are empty divs with &nbsc; in them everywhere.. some HTML elements haven't been closed, no comments, indentation seems to be completely random. All the usual shit storm of a novice web designer.
The only thing is, this guy I know knows how to indent, I've seen his previous work. Why is this so horrible then???
I ask what the hell happened, it looked like a nuclear explosion happened!
He: Yeah I'm using this great plugin for Dreamweaver which lets me click and it puts in Bootstrap elements! It's great!
........ You're blaming the bootstrap framework for affecting your links to your stylesheets, you're using an elements generator, you're not checking what the FUCK it puts into your code, not fixing the indenting, not checking the standard HTML rules are followed AND YOU WONDER WHY IT'S BROKEN???
Kill me now.4
Fellow Dev: the clients are requesting a gallery on their website with functioning modals.
Me: okay cool
*I googled as much as I could and I made a proper functioning gallery in 2 full days of coding*
Him: okay, so this is great but they aren't really digging it.
Me: *sigh* yes, so what do they want?
Him: have you seen how an image opens in Google images? Like you click on one, the image opens while the rest of the content shifts down?
Me: um... Yeah?
Him: yeah, so they want that.
Me: ... *Scoops the web trying to figure out how Google does it*. Dude, I can't find anything close to it and I've still got a lot to learn. Idk how to do it.
Him: well, you're being paid for that. So, you better do it.
Me: 1000Rs ( approx. 14.58$ ) isn't called "being paid". Gimme a break here.
Him: You're a novice rn.
Me: why don't you do it?
Him: I'm your boss.
*Sigh* (he indeed is my boss)
Him: deal with it.
Me: FU........C.....*suddenly I realized how it's done* OH OH OH OH I just got it, I just got it!
(I actually make something like that)
That's just my best story of a fight. Lol.5
Here's to clients who wish to pay "per project" instead of "per month". Man, fuck that.
Back when I was still a novice, I took on a couple of small time projects from clients who contacted me after looking at my GitHub, and they all wanted to pay me a lump-sum for the project. Because I'm an idiot, I thought sure, what difference would that make. Boy was I wrong.
What followed was me finishing the projects well before time but because of the clients' constant reiterations and changes in design and nitpicking every decision I made while creating the websites for them, the projects dragged on for weeks longer than they were originally intended. And I fucking got paid that one-time amount in the beginning. All this maintenance, for free. Even though I had not explicitly agreed to the maintenance part, since they never finalized the specifications of the project, it just never got "done" officially, and all the maintenance part just came under development.
How many different kinds of disgusting does someone have to be to do this? I should've fucking said NO to those terms, but I had to have experience. Well, nice experience that was. Never again. :(1
How could I only name one favorite dev tool? There are a *lot* I could not live without anymore.
I have to talk to external API a lot and curl is painful to use. HTTPie is super human friendly and helps bootstrapping or testing calls to unknown endpoints.
grep|sed|awk for for json documents. So powerful, so handy. I have to google the specific syntax a lot, but when you have it working, it works like a charm.
Finding strings in projects has never been easier. It's fast, it has meaningful defaults (no results from vendors and .git directories) and powerful options.
Lifesaver. Nough said.
And tweak your command line to show the current branch and git to have tab-completion.
# Jetbrains flavored IDE
No matter if the flavor is phpstorm, intellij, webstorm or pycharm, these IDE are really worth their money and have saved me so much time and keystrokes, it's totally awesome. It also has an amazing plugin ecosystem, I adore the symfony and vim-idea plugin.
Strong learning curve, it really pays off in the end and I still consider myself novice user.
Chrome plugin to browse the web with vi keybindings.
# bash completion
Enable it. Tab-increase your productivity.
# Docker / docker-compose
Even if you aren't pushing docker images to production, having a dockerfile re-creating the live server is such an ease to setup and bootstrapping the development process has been a joy in the process. Virtual machines are slow and take away lot of space. If you can, use alpine-based images as a starting point, reuse the offical one on dockerhub for common applications, and keep them simple.
I will post this now and then regret not naming all the tools I didn't mention.
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've been slowly but surely writing the skeleton of a game on my Github.
Now to actually learn the basics of Github so I don't have to copy and paste my code every time there's an update....6
Got a high paying job, with great benefits, and a big name, straight out of college. I was hired as a software engineer. Comfy, relaxed, and flexible.
The problem comes where it was not the job I was expecting. It has been almost a year and the only programming I've done has been 1 small copy pasta project. I am worried because I am bored and feeling my coding skills fade away. I'm still a novice programmer and feel like this impacts future career opportunities not learning useful skills for outside of this company. I'm going to grad school to do what I really want but still have the 2 years.
Do I stay or do I make the stressful change again? Other fun thing is I just relocated a distance to an area with not a lot of opportunities so would likely involve relocating again.1
I need to stop treating an OO language as if it were a procedural language.
I have the tendency to turn my code into GOTO spaghetti even though I'm semi-aware that objects exist and that they are distinct.
I still have to get used to this paradigm.
My Java professor always swore by the Plato paradigm, i.e.:
""Platonism" and its theory of Forms (or theory of Ideas) denies the reality of the material world, considering it only an image or copy of the real world.
According to this theory of Forms there are at least two worlds: the apparent world of concrete objects, grasped by the senses, which constantly changes, and an unchanging and unseen world of Forms or abstract objects, grasped by pure reason (λογική). which ground what is apparent." (wikipedia)
Thinking in objects, abstractions and metaphysics is not something I haven't done before (I've practiced it during Sociology and Ethics with the whole Pascal Leibniz, Newton and DesCartes approach) but it's certainly not easy.
Then there was my cool Programming 201 professor who said: "Don't worry man, just read those great UML, Program Design and GOF books and it will all become easy, like a story. It'll all make sense.
I mean, I've graduated, I've passed my Software Engineering I, II and III (hard as hell) but since I haven't focused on those theories and practices anymore, I've lost my touch.
It's definitely not easy for a novice programmer to transition between paradigms..10