Answer the question
In order to leave comments, you need to log in
Where to move professionally?
The situation is this.
For the last year and a half, I don’t see where to develop further in terms of professional growth.
Books on OOP, DDD have not given anything new for a long time. All questions related to the architecture of applications that were for myself, I have already decided. I have been familiar with such things as TDD, DDD, CQRS, SOA for a long time and successfully apply them.
The current project is architecturally polished, both in terms of code support and in terms of application scalability.
At the moment I am writing a backend in ruby (not the rails way), I previously wrote in Java, from where I dragged it to the love of architecture.
Actually, before I hit the ceiling, but each time there was something fundamentally new that I did not know. Now I do not see anything fundamentally new that could appear. Question to those who faced a similar situation, where do you grow next? Might be worth trying something else? What do you advise?
Answer the question
In order to leave comments, you need to log in
To grow, you need to disbelieve in what you have already learned, destroy it, reject all these concepts and build them anew. Critically approach what was taken from authoritative books and articles, even what was obtained by experience from our own projects.
It's useful to bring up old authors, because everything has been around for centuries, such as Dijkstra's Notes on Structured Programming and Wirth's Algorithms + Data Structures = Programs. Listen to lectures by people like Alexander Stepanova:
"Transformations and their orbits"
Part 1 https://youtu.be/QmuMHtbO4ug and Part 2 https://youtu.be/uCGifwlgAQg
"The largest common measure of the last 2500 years"
Part 1 https: //youtu.be/Dx1MZh6KYCk and Part 2https://youtu.be/zqETgaYxlt0
It is useful to start a new difficult task, fundamentally different. Here you were engaged in web services, but take a project where this is not suitable, where you need communication based on the UDP protocol or RPC, and stateful (STATEful) connections between the client and the server through the event bus or various communication pattern designs, see ZeroMQ zguide.zeromq.org/page:all If you were into enterprise systems, then take industrial automation, it will destroy your confidence in ironclad approaches. If you were engaged in the web, then take distributed computing or system programming.
Move to new paradigms like functional programming, reactive programming, manads, etc. If you are used to doing everything according to the knurled one, then you can switch from programming to metaprogramming and you will have to rethink everything. Here are my articles about this: habrahabr.ru/post/137446 and habrahabr.ru/post/227753
You can not even leave current projects, but delve into optimization and experiments. Find bottlenecks, profile the code, place it under load, take a snapshot of all the characteristics of the system at runtime, and examine your program like an "unknown object".
Get married, the rest of the questions will disappear.
Multithreading and tricks of modern compilers are an open book for you?
Look for a job that has a higher level of seigneur than your current project and discover new facets for yourself.
Perhaps you are in a somewhat artificial environment at work, with "enterprise class systems". Enterprise is generally dangerous for the development of the developer, you need to have a strong will to develop. How to motivate yourself? Try to interview at a specialized IT / product company
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question