I've noticed that I can be very not productive because I hate using external things (usually tools).
For example, I have a bit of a distaste, or at the very least, feel sour when using, or looking at build tools.
Why is this though? Is this a common fear (at first)? And what causes it?
Top comments (22)
You're not alone. In part, this is why CodeStream was born. (I work there, BTW)
What's that?
It's an open-source IDE plugin that integrates issue trackers (Jira, Trello, etc), code review, pull requests and code discussion. Basically you don't need to switch to external tools to perform any of these tasks. Currently available for VS Code, IntelliJ (and all JetBrains IDEs), VS and Atom. Take a look at codestream.com/demo
Umm actually that was what I tried to do when I started my career but soon I realized I am reinventing the wheel and wasting some of my time doing something that I can just implement by directly importing some library and make a innovative product or tool without reinventing the wheel.
Yes there is still some problems and things that I don't like but since things are open source I can just edit it according to my needs or if I have an better approach I try raising a pull request to that tool or package and help the community because that's one of the things that open-source promotes better tools and products by collaboration.
I am kind of over it now and I use django (which is quite opinionated and follows a battries included approach) and python and my main motive is using tools to build solutions without reinventing the wheel.
I think you should try using them and if possible try contributing so that you can feel the same amount of security with other people's tool as you feel with your own.
Well, it isn't just about that. I don't mean just simple libraries, or anything.
I mean things on the scale of tools like Maven/Gradle. and various programs of a similar caliber.
Unless that could be treated the same in this scenario.
Technically they make the work of a developer simpler and help them in doing so without reinventing the wheel so I would treat them similarly and if you understand the internals or the processes then just try contributing to the parts that you feel isn't good or problematic or atleast raise a issue on the repo so that someone might notice it and try fixing it or you might get clarity on why something is like that and what they considered while doing that or if you can fix it try to raise a pull request after all you are free to ask or contribute.
I have also got replies on repos which explained why something was done in some way and not the other way and most of them reply with atleast some kind of explanation or link to resources. If you don't understand still then you can try asking here and most probably someone would explain you that.
BTW if I am not satisfied with a tool I try looking for alternatives that might have the things or features that I need.
What about IDEs? There's not really any alternatives for that, and to me, they seem too complex.
Yes, people tell me to learn, and I want to, but things like IntelliJ, which I tried just overwhelm me. And they feel overbloated, with no menu organization that makes them beginner friendly, nor do they explain their features.
Is it okay to be upset with an IDE for this reason, or am I making a fuss over a learning curve? Because I honestly don't know what approach I should take to being scared of tools, and programs, etc.
Examples?
Look at some of my other replies.
But,
Maven,
Gradle,
Dotnet (instead of just
csc
),IDEs,
other things of that nature.
I think I can only barely grasp it then. Some stacks, I hate the tools more than others.
Java for example. Most of the IDEs are terrible. They are slow to respond to my desires.
MySQL, same issue with most of the IDEs.
But, at the same time the simplicity of the things doing and organizing my work is worth it.
I do love Visual Studio though. And I'm starting to like MySQL Workbench.
What I actually hate, is when my workflow requires changing input methods:
type type type type, move to mouse, click, new window, type, click, close window, click text field, type type type.
It's definitely a weird workflow, but I hate IDEs for a stupid reason.
They are just too overwhelming, they are loaded with features (which is good), but they don't make it look ready to anyone coming from something like VSCode (which I like for its "open file, type, save program, ?test-run program", and the way it doesn't try to take too much control.
What I mean by that last point, is that it doesn't insist on anything. For comparison, when I wrote doccomments in Java, IntelliJ forced me to have the space indent (and if that could be turned off, they hid it from dumbasses like me super well), in VSCode, it doesn't. This personally is a big point for me, because only the ones after the first line have an indent, and its misalignment triggers me.
I'm sure you can imagine quite a few other "insistive" problems.
What do you think of my reasoning? Is it stupid? Am I making a fuss out of IDEs being better than the "advanced text-editor" that VSCode is?
Or is this (at least kinda) a legit reason to be upset towards tools?
Not sure what you mean exactly, but I think I have some idea:
In which case, if you aren't used to working on teams, I can get the frustration. I assume you don't like that whitespace format? But above that is the "correct" format for C# according to MS, expect I used spaces instead of tabs.
Consistency across teams (I currently have peers around the globe) being able to scan code quickly, and not mess with a dozen styles is actually critical. So for me, an IDE that does well with something like StyleCop, linters, Resharper etc. is a very nice to have.
Especially for Jr. developers: "Here's the MS recommended style, here are our exceptions".
I always try to keep the list short, because no one wants to miss a sprint because someone kept flagging " needs work" for minor style issues.
Well, things like this are annoying, too.
Comments, in general? Or comments similar to that?
I'm of the camp: Comments should explain what your code can't.
If you mean: Using that style of commenting for a single line of comments, then:
1) Almost every style guide I've seen would call that a bad practice. It should be fixed
2) In compiled languages, at least it has no impact as generally the compiler will drop comments.
No, I meant w/ doc-comments, it forces me to have a space on all (comment) lines below the start, yet doesn't align the top (starting) line.
Refer to what I sent in the code block to resolve any questions, and ask you're still confused.
Here's my two cents:
Most things in life require tools. If you brush your teeth, sure you can use your finger, but it helps to use a toothbrush and some toothpaste.
I believe the fear is both normal and healthy. Even our own limbs are tools. When you were a baby, you were probably nervous to walk, but because you did, you can now run!
Think of these tools as people. Until you take the time to get to know them, you won't know if they're friend, foe, or something in-between.
Try to meet your goals without these tools. Then, if you hit a roadblock, slowly add them back in. This can help you develop a deeper appreciation while keeping your toolchain light.
Unfortunately (especially for introverts like me), sometimes you need to meet a bunch of people all at once. In that case, just learn their names, get the gist, and keep on chugging.
In time, you'll figure out who your friends are, and they will be invaluable resources.
I agree with you. However, over 29 years in IT and 21 of those years spent in Dev have beaten it out of me. Let me see if I can restate a part of what you mean:
There are tools we devs have to use that are supposed to just work so we never have to look at them (build systems like gradle in Android are a great example as are IDEs (XCode on Apple, Visual Studio, etc)). Then those underlying things break and we have to learn some technology that is indirectly related to actually creating the product or writing the code. This makes it very difficult to focus on doing the thing that you do, because you end up wasting your time working on some esoteric detail of an underlying tool. 🤮 But, such is the Dev Life.
While tools seem like they could be nice, depending. Wouldn't it just be nice to have just the language, its RTE, and maybe some additional libraries, etc...
I personally feel like it's a waste of time learning tools. Personally, tools just seem like a bit of overcomplication to the process.
Seriously, the only language like what I'm describing is Python, and that's just barely like how I describe, escaping by just the grace of the
python
command, and the functionality of running when you DLClick a.py
/.pyw
file.I decided long ago that it was not worth using tools at a deep level. Because they will change and you will have to waste time relearning. And yeah, somebody with a lot of special shortcuts and code snippets can code a lot faster than me. But if that really mattered, programmers would be tested for it before being hired. It is far more important to think rightly than to code quickly. The tools are ephemeral so treat them as such. Use the best parts and ignore the rest.
Maybe slow feedback loop is what you dislike in those tools?
Feedback loop?
Take a look this talk youtu.be/VD51AkG8EZw?t=1930 (starting from 32 minute) or dev.to/omaiboroda/shorten-your-fee...
How many time it takes you to see change (between writing code and actually running code). The shorter is better. Complex build setup often means slow feedback loop.