DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Low-Code Development: Leverage low and no code to streamline your workflow so that you can focus on higher priorities.

DZone Security Research: Tell us your top security strategies in 2024, influence our research, and enter for a chance to win $!

Launch your software development career: Dive head first into the SDLC and learn how to build high-quality software and teams.

Open Source Migration Practices and Patterns: Explore key traits of migrating open-source software and its impact on software development.

Related

  • NullPointerException in Java: Causes and Ways to Avoid It
  • Navigating the Path to Digital Maturity: Key Takeaways From the ManageEngine User Conference
  • Harnessing AI to Revolutionize IT Service Management: Insights from ManageEngine's Director of AI Research
  • Efficient ITSM Incident Resolution: Leveraging Azure AI Services for Quick Solutions

Trending

  • What Is Plagiarism? How to Avoid It and Cite Sources
  • A Comprehensive Guide To Building and Managing a White-Label Platform
  • Microservices Design Patterns for Highly Resilient Architecture
  • Test Smells: Cleaning up Unit Tests
  1. DZone
  2. Coding
  3. Tools
  4. Is IntelliJ Making Us Stupid? It's Complicated

Is IntelliJ Making Us Stupid? It's Complicated

Studying for the Java OCP 17 exam brought home how much mental work we offload to our IDEs. Human memory is not about data storage. It's vital to creativity.

By 
Jasper Sprengers user avatar
Jasper Sprengers
DZone Core CORE ·
Aug. 30, 22 · Opinion
Like (11)
Save
Tweet
Share
12.7K Views

Join the DZone community and get the full member experience.

Join For Free

My last Java certification is the SCJP 6 from 2010, so when the OCP 17 came out, I thought it high time for a refresher. I am setting aside an hour every day when I’m at my brightest, which is after coffee and before breakfast. I'll share my personal study tips later, but it's more credible if I first pass the exam. So, I found another topic to distract me from my studies that I want to dwell on. It’s the effect that modern IDEs and resources like Stack Overflow are having on our brains. Once you dig into the 900+ pages of schoolwork that is the OCP Study Guide, you’re painfully reminded that they have been making us lazy and maybe even a bit stupid. 

Granted, the sheer number of facts to digest would have been less overwhelming if I had kept up more closely with the state of the art over the last decade. Several new features have been added, of whose existence I was at best only aware. After fifteen years of using Java, you tend to rely on tried and tested ways, for which there is no excuse of course. It’s a classic example of not sharpening the saw, so shame on me. 

You’re forgiven for not knowing how to obtain a scheduled thread pool executor by heart, but it’s also much more basic stuff we keep forgetting just as easily. Our IDEs are too helpful. Experience doesn’t count for much. Long exposure without the inclination (or need) to absorb amounts to zero learning. I cannot tell you my mother’s cellphone number, even though it’s staring me in the face whenever I tap it in my favorites. I have no need or wish to remember it. Therefore, I take my time to let the OCP subject matter sink in slowly, at a pace of an hour a day. During these sessions, I have a flashcard app handy for questions to my future self and an IntelliJ window to play around with the code from the book.

We’re Spoiled Beyond Belief

Some of these spot-the-error snippets are real brain teasers. Don’t copy and paste them into the IDE before you’ve worked out the answer, because the IDE beats you to it. Anything that won’t compile is flagged and nicely explained, plus all manner of bad habits, code smells, and likely runtime errors. It’s getting impossible to write bad code – only joking. But we are spoiled beyond belief. Each new IntelliJ release frees us more of the need to think for ourselves; or should that be robbed of the need?

The power of modern IDEs to deal with huge code bases that would be impossible to manage otherwise is a blessing. It’s almost the mental equivalent of digging a hole with a hand shovel compared to sitting behind the controls of a Caterpillar monster, but let’s not stretch the analogy. Sure, it’s better to mechanize slow, arduous, and backbreaking labor. Most of the IDE features we love are labor-saving, rather than creativity-enhancing. However, an hour saved in that way is not automatically converted into more creativity.

Writing lines of code (let alone designing architectures) is still a creative act that requires judgment and intuition that the IDE can’t help you with. It can wave red flags using metrics like class/method size, coupling, and cyclomatic complexity, but it won’t stop you from making a sticky bowl of spaghetti. How’s that? Navigating a huge repository without an indexed search is not only painful, but it’s also impossible. It’s great that you can jump from anywhere to anywhere, but with good isolation and loose coupling, you wouldn’t need to. Poor code that is only (barely) manageable with brute force search has no right to exist. It’s exactly because IDEs are so great at locating the proverbial needle in a haystack that a lot of terrible code is produced.

Can You Still Use a Paper Map?

Some seasoned developers pooh-pooh the OCP’s usefulness because it does not test your design acumen, only your skills at solving far-fetched puzzles as a human compiler. I disagree. Picking apart educational code samples sharpens your mind. The OCP no more turns you into a human compiler than primary school writing and arithmetic turns our children into little spell checkers or abacuses. This is just basic stuff you should know. Nobody’s expecting you to dump an optimized merge sort algorithm on a whiteboard, but neither should you be completely clueless without autocomplete or real-time error highlighting. 

The more tedious brain work you offload to the machine, the more those mental skills atrophy. Can you find your way around central London/Paris/Amsterdam with only a paper map? I can’t anymore, and I’m not happy about it. As you lose the appetite for rote learning, you lose the capacity to absorb new facts, and more is lost than just data points. Intuition and judgment grow and mature from the knowledge you have amassed and consolidated, but only if you give it time to stick. Mastery of a foreign language is a good example. Depending on your aptitude and motivation you can make simple conversation within months, but to have a near-native intuition of linguistic nuances takes many years of dedicated effort. Exposure is not enough.

When Everything Is Handed to You...

There’s something about the slow, clumsy hassle of looking up a word in a dictionary that makes it superior to a Siri query: you try harder to commit it to memory because it’s annoying to look it up a second or third time. I don’t believe digital gadgetry would have much improved my vocabulary or fluency when I started my English degree in 1990 and all we had were books. When everything is handed to you, it’s only worth as much as the time put in, according to philosopher Miranda Lambert.

The human body is an energy-saving device. It doesn’t like to expend unnecessary effort, whether physical or mental. Brains and biceps burn the same calories, by the way. Yes, remembering the options of common Docker commands is dry, but is it so arduous that you must always rely on Google instead of your own brain? It’s paradoxical too, because the desire to excel at something difficult and not very useful (like competitive memory), is also a very human trait. We wouldn’t have had the Apollo missions if our species’ tendency was only about saving energy. 

General-purpose AI still hasn’t made your job redundant, but it won’t hurt to be prepared. Don’t give in to the lure of the machine too readily. George Orwell already warned us in 1937:

And yet so long as the railways exist, one has got to travel by train — or by car or aeroplane. Here am I, forty miles from London. When I want to go up to London why do I not pack my luggage on to a mule and set out on foot, making a two days of it? Because, with the Green Line buses whizzing past me every ten minutes, such a journey would be intolerably irksome. [..] No human being ever wants to do anything in a more cumbrous way than is necessary. 

- From The Road to Wigan Pier

IT intellij

Opinions expressed by DZone contributors are their own.

Related

  • NullPointerException in Java: Causes and Ways to Avoid It
  • Navigating the Path to Digital Maturity: Key Takeaways From the ManageEngine User Conference
  • Harnessing AI to Revolutionize IT Service Management: Insights from ManageEngine's Director of AI Research
  • Efficient ITSM Incident Resolution: Leveraging Azure AI Services for Quick Solutions

Partner Resources


Comments

ABOUT US

  • About DZone
  • Send feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: