
Ask HN: Technology stall - bidev81
i&#x27;m an enterprise developer, specialized in .NET stack, i&#x27;ve been ranging from eCommerce, Media, Healthcare ad now Public Administration areas, it may sounds good, someone may says that i&#x27;ve been &quot;lucky&quot; to face with multiple biz domains, but is not all gold what&#x27;s shines, in my country (Italy) there is no importance (or almost) to quality of projects (especially Technically), you have to face with ridiculous deadlines, poor team mate (in order of thech knowledge) and tremendous customers.<p>When i started to work i thought, &quot;nice, i&#x27;m paid for doing what i would have done i my free time !&quot;, but now looking at the current situation i&#x27;m not of the same thought anymore, i would move on to different fields but i can&#x27;t focus on one in particoular, i constantly feel interested in IT Security, then low level programming (C&#x2F;C++) than again &quot;new&quot; languages like GOLang, RUST etc.. i can&#x27;t focus on nothing, i think it&#x27;s due to my work frustrations, does anyone ever been in a situation like mine ? and more... some advice on how to follow the right path ?
======
virmundi
First to your lack of focus. I had the same issue. I jumped around various
languages like Scala and Closure and D. I would jump around background
products like Mongo or Arango or PostgreSQL. Probably for the same reason for
you: novelty driven by a sense of the industry leaving me behind.

I think this is a false sense driven by HN and the like. Startups playing with
new things made me feel that my Java centric knowledge was outdated. They
would say, "look at the scale we achieved with clusters of Node and Mongo."
When I looked at what they were doing, what they actually produced the sheen
faded. A generation spent on ads.

Then I turned my attention to a problem that I have and to another faced by my
clients. This gave me clarity. Stay aware of new tools and techniques, but
realize they are just tools and techniques. Don't lust after them. Rather look
how and if they can be applied to your problems. Look if they are a better
fit. See if they can help you achieve your goals in a compressed timeline.
Then dig in.

As for teams and deadlines, that is not really a matter of tech. Poor teams
occur even in the newest tech. I've seen people totally misunderstand, at
best, and squander Hadoop and its tooling. I've seen systems that used proper
decoupled design rot into a quagmire of failure due to people not reading
about software architecture or the tools in the stack. You have to power
through this. In such situations, I've seen first hand that people want
leadership even if during the process of asserting that they despise you.

~~~
dimal
The way I deal with the lack of focus was to simply stop reading HN,
/r/programming or any programming blogs for about six months. I just focused
on working with the tools I knew and stuck with them, whether they were the
best or not. I wasn't constantly distracted by new shiny stuff, wondering
"Should I have used X instead?" It gave me a lot more confidence as a
programmer. Instead of wondering whether some framework or tool would solve my
problem, I remembered that I can solve those problems myself. That's what
programming is. It's not just plugging frameworks together. It's actually
solving problems with your brain, and that's the fun part. After that
experience, I can follow tech developments with a lot more detachment. I'll
sometimes get into things that genuinely look to solve a problem I'm hitting,
but I don't feel any compulsion to use the latest, bestest stuff. And I enjoy
programming much more than I had been.

------
peteforde
I agree with other posters that you should exercise, take a vacation, make
sure that you're not burning out. It does sound like you need to shake things
up in your life. Can you leave Enterprise world and try a startup? Can you
leave Italy? Can you take a job in a different industry for a year?

Here's what I learned when recovering from burnout (it took a year): the
reason you do something dramatically impacts whether you're able to enjoy
doing it. This is why being a prostitute is not the best job ever. I recommend
to all of my artist friends that they find a job that pays the bills so that
they can do art on evenings and weekends. This prevents them from coming to
resent their art as necessary to live. Why do we let our need to buy things
strip away the joy from things we enjoy most?

I do want to say that it's not your lack of focus which is the problem. It's
good to be curious and try new things. There are some people that thrive
because they spend their lives being the best at one thing, but many of us are
valued because we're really good at a lot of different things.

Make sure that you have hobbies that are not technical. I like photography.
You'll find that being an interesting person, you'll attract other interesting
people (and opportunities) to you.

Finally, always make sure that anything "work" related that you do, including
programming, that you do in the context of having a problem to solve or a
project to finish. Even if you're the one with the project or problem. The key
is that problem solving is how we learn to use tools and the reason we retain
knowledge. You know a language or tool not when you have the API memorized
(forgotten next week!) but when you have developed your instincts suitably to
know how you'd use it to solve a problem.

People don't pay you to know everything, they pay you to be faster/better at
figuring out the solution than the others.

Anything worth doing in life is hard. Good luck and have fun.

------
mpermar
Being specialized in .NET stack you're likely like me in your 30s or 40s. Life
in our 20s was simple. Java or .NET or PHP, specialize in one or the other,
and there we go, we can build a career on top.

I share many of your feelings. I live in Spain. The markets are common. But
honestly, I think it's not a matter about Italy being shitty at anything. The
IT world has changed. There is no three platforms any longer. There is no one
single deployment paradigm any longer. Things are much more complex now and
it's truly impossible to try to take on everything as it was 15 years ago. I
found that myself frustrating many times. Thinking, heck, 15 years ago I could
study this, this and this and be an expert pretty much on everything software
related. Now this is not true any longer and it can be very frustrating for
all of us that come from that world.

I think the key here is holidays of course, but also to adapt to the new
software world. And learn that not all what appears in HN is shiny and great,
not all that is done in the cool places like SV is shiny and great, and not
all those frameworks and languages that pop up are shiny and great. Rather
than a matter of focus is a matter of taking it easy. Do something that you
like and that you enjoy learning and learn to let things pass on. You don't
have to be a master of react, golang or angular to be a competent software
person, there is more choices than ever. Focus on the models, patterns,
problems and solutions. That's where the value is today.

------
ankurdhama
Yes, I have been in this situation and I guess most programmers who started
programming coz it is amazing felt the same at some point. I call this the
"infatuation with tools", where we keep learning new languages, frameworks,
libraries, OS etc but once you learn it you feel empty and bored coz somehow
our subconsciousness develop the idea that tools gives you silver bullet to
solve any problem, which of-course is wrong. The way to overcome this is that
you need to understand that Computing is a tool that can be used to many
problems. The tools are not fun and interesting rather the problems are fun
and interesting. Think about real world problem and how computing can solve
them or at least play a part in solving them. Get fascinated by problems and
not tools. Probably that's why I hate most job postings where they say "hey do
u know x,y,z tools?" rather than saying "Hey we want to solve X, are u
interested?".

And yes, computing is about data and algorithms and nothing else. Don't fall
into the trap of new names of same concepts. Always think about problems in
terms of data and algorithms and no other bullshit like objects, patterns that
so called software engineering piled up in search for a silver bullet.

------
vonklaus
Take a vacation; you are burning out.

If you can take a >1 week you can program for fun after 5-7 days and get a
sense for what interests you without work interfering. If you can only take a
shorter vacation have fun and do something outside of technology and relax.

Consider working on a side project in the weeks following a break and hack on
small projects that interest you. If you want to leave the .net space find
local companies working on interesting problems.

Ask to get coffee with anyone in your network (or outside) to get information
about other parts of the industry/other companies and methodologies.

All in all take a vacation and then spend 2 months hacking on projects and
talking to anyone in any part of the industry around your area (or potential
prospect cities).

> I am interested in security, c, go ect...

Talking to people actually coding in a language, securing infrastructure,
doing X, will be a lot better then learning Go for 2 months and finding out
that it didn't help with your core goals.

Take a break. Expand your professional circle and knowledge base. Format a
plan based on that info. Execute

------
noname123
My suggestion is to try to audit a series of courses. This will force you to
concentrate on a particular theme; some of the courses are not self-paced and
have a deadline to finish problem-sets (which are Juyptor notebooks where you
have to actually do the work, and fill-in the code snippet but not to muck
around with setting up annoying IDE/dev environment, autograded with unit
tests), so will force you to stick to deadlines.

Here are some of courses that you might (read: actually I am) interested.

[https://www.edx.org/xseries/data-science-engineering-
apache-...](https://www.edx.org/xseries/data-science-engineering-apache-spark)
(3 courses on Apache Spark using PySpark and introduction to simple machine
learning and distributed computing)

[https://www.edx.org/xseries/genomics-data-
analysis](https://www.edx.org/xseries/genomics-data-analysis) (3 courses on R,
next-gen genomics sequencing, annotation and some more cool computation
protocols involved with CHIP-Seq and RNA-seq).

[https://www.coursera.org/specializations/scala](https://www.coursera.org/specializations/scala)
(4 courses + capstone, spearheaded by Martin Odersky; the guy who is the big-
wig in the Scala community).

Also, I'd recommend taking the verified tracks for all of them. This will
force you to complete them as money is on the line (if possible ask HR/your
boss if it's related to your work, for tuition reimbursement benefit).

~~~
lukasLansky
I recommend taking the specializations, but don't expect you will be able to
reimburse them as Coursera is unable to provide invoices.

Yeah.

------
brianwawok
Non tech advice but do you exercise? A 30 minute run ever day before work
makes a day 100% more enjoyable.

Seldom does using a different language fix anything. Programming is
programming.

Excercise can fix your life outlook. Better teammates can change things. Nicer
boss. But seldom will language or business do that much do your day to day
life.

~~~
alex_hitchins
I agree up to a point (regards to languages). A change from C# to F# isn't
small and can give you new ways to evaluate problems. Likewise with C. The
constraints of the languages highlight areas you can learn and improve.

As for excersice, anyone in a desk based job needs to include movement as part
of their day. I take a walk at lunchtime.

------
DenisM
Most likely you will not be satisfied working on technology in a non-
technology company. Find a job where a company considers technology to be
instrumental to what they do, and you might see a much better environment.

If you can't, move to another country.

~~~
wastedhours
This. This is what I've come to realise has been my issue with a lack of work
engagement, and the feeling of creative atrophy and itchy feet. I don't want
to be the "magician" digital/developer person, to be doing things where
technology is the sideline - need to be within a digital team, working to a
common purpose. Hopefully find that once it's safe to move on from my current
role.

------
nercht12
Whenever that new tech excites you, just remember that behind the scenes,
everything is that same "old" tech you've always been using, and that your
could do "the next big thing". Nothing is really "new" in programming _. Most
of it is C and C++ behind the scenes. Those fancy new languages? - Some of
them take just as long (if not more so) to create the same software you 're
already making with the "old" stuff (despite the repeated boasting of a puny
hello-world), and they have their own new set of pitfalls. If it makes you
feel any better, find a fancy icon and stick it in your project folder. Once
you do, congrats, you're now more geeky-hip. _I mean the action of
programming, between you and the computer, not the industry, duh.

------
hacknat
I've been there. The problem with being a good programmer is that you quickly
exhaust the low hanging fruit of interesting things to work on in your career.
Remember that time when you knew next to nothing and everything you did was
interesting, because it was novel. Those days are over, because you are now
pretty good at doing what 95% of organizations need out of Software Engineers.

Don't panic.

Work is going to be a little bit boring for you for a while; learn how to cope
with this for a bit. It is going to take longer for you to become an expert at
something interesting and important than it took for you to get to where you
are now. This may seem counterintuitive as you are quite a bit more aware of
what you don't know than you than you were before you typed your first "hello
world". That's okay. This is how knowledge works. All those abstractions
you've built up in your brain for the the low-level things you didn't need to
know at first are massive wells of knowledge that you only see the surface of.

So How do you get good at something? I truly believe you can only get good at
something that you can sustain working on for a few years. I find, personally,
that I can read one theory book or set of papers between bouts of working on
something. That seems to be a good mix for _me_.

This isn't a race, this takes time. Once you start down the path of becoming
an expert at something you'll realize it is the work of an entire lifetime.
Enjoy the ride.

------
bkanber
There's no good answer. __You have to learn how to focus. __You can 't wait
for focus or motivation to come to you, you have to make it happen. Why do new
languages interest you? Probably you're just looking for something different,
to escape some depression you're feeling. Instead you should focus your
attention on solving problems, and then picking the right language for those
problems. You may also want to talk to a therapist about depression, it really
does help a ton.

I don't know much about tech in Italy but I have heard the same complaints --
culturally, Italy doesn't have high standards for quality in technology. If
you struggle with that, then there are two solutions: work for a US or Israeli
company, remotely if you can, or start your own business.

If you want to start your own business, I'd recommend starting a solo software
consulting practice _first_ , that way you know you can make some money on the
side while building your business.

~~~
haukur
> work for a US or Israeli company

Why an Israeli company? I assume you mention the US because of the salary in
SF and other tech hubs, but it doesn't seem to be comparable in Israel, nor
higher than in cities like London, Berlin or Stockholm.

~~~
jabbernotty
You took that out of it's context. The "that" in that sentence refers to the
previous sentence. The poster is mentioning US and Israeli companies as places
where quality is held to higher standards.

------
terminado

      in my country (Italy) there is no importance (or almost) 
      to quality of projects (especially Technically), you 
      have to face with ridiculous deadlines, poor team 
      mate (in order of thech knowledge) and tremendous 
      customers.
    

Quality versus deadlines, jousting with shitty team members, or suffering the
burden of demanding and insipid customers. All of this is normal. These are
human factors, and they exist within a spectrum (or gradient). Some areas can
be worse than others, but none are ever quite _good_.

Moving into a different field (one which is more specialized than
_generalized-enterprise-business development-in-yet-another-problem-domain_ )
won't fix any of those things.

    
    
      i constantly feel interested in IT Security, then 
      low level programming (C/C++) than again "new" 
      languages like GOLang, RUST etc.. i can't focus on 
      nothing, i think it's due to my work frustrations
    

Having tangential interests (security, low-level computing, new languages) is
also normal, and a symptom of possessing a naturally curious creativity.

So, the question: Is an inability to deliver on hobbies, and convert them into
productive professional skills, driven by miserable distractions? Nah. Whether
you make something of them, isn't going to be the cure of the things that you
find frustrating, _BUT_ the time you spend tending to frustrating tasks will
be time that is poorly spent, under any circumstances. Fluffy bean-counting
busy work will eat up the precious moments of your life, no matter the career.

So, now you'd like to migrate your skills over to newer hoobyist interests,
that you've explored tangentially? Makes sense, but it won't solve the human
factors stemming from social circumstance. Nor will it prevent unfulfilling,
soul-crushing toil from creeping into your newfound career path.

It _WILL_ , however, temporarily cure your wanderlust, and relieve that
dreaded sensation of stagnation.

I dunno, try this, for starters:

[https://taylorpearson.me/limits/](https://taylorpearson.me/limits/)

    
    
      LinkedIn founder Reid Hoffman looked back over his 
      career and cited his biggest career mistake as not 
      leaving Microsoft for Netscape. 
    
      At the time, Netscape was where all the innovation 
      was happening. It was spouting out entrepreneurs. 
      
      The right question wasn’t “how can I learn to be a 
      product manager?” It was, “how can I get in the 
      building at Netscape?”

------
benologist
For me it helps to try and recognize that a constant state of procrastination,
and distraction, are just like a constant state of learning when it comes to
finishing the task at hand.

The right tool for launching might be the one that requires the fewest trips
to StackOverflow via Google, or maybe that idea is not an important
optimization to your workflow.

------
sixFingers
Hey, I can't express _how much_ I can relate. Some facts:

\- I'm Italian

\- I'm in my 30s

\- I have ~8 years of professional experience, mainly in big agencies

\- I have _fully_ experienced the pains of your country, consider also I have
been independent contractor for some years (you know, clients not paying you?)

I moved to France following my girlfriend, and I'm sitting here waiting for a
response to some job positions I applied for. Also I'm running out of money. I
am also _really_ thirsty when it comes to technical challenge. So well I'm the
last who can give you advice, but here are some things that worked for me:

\- Stop looking at Italy for jobs, instead look at Europe. I had an experience
working for a company in San Francisco (ok, that's USA) and it was ages beyond
the typical Italian experience. I'm pretty sure that Berlin, Amsterdam,
Barcelona can offer great positions _and_ professional cultures. I'm actually
checking europeremotely.com basically daily, but also StackOverflow jobs is
pretty cool for that. I hope not being wrong about this.

\- Don't stop feeding your passion. If you love coding, keep doing it.
Personally, I took everything which was outside my consolidated professional
competence, and put it in a box called "game development". That's my secret
corner where I experiment everything I love. Like well "modeling a mafia
economic system through agent based simulation". There, I practice stuff I'll
probably never use professionally: C#, LUA, C++, Golang, OpenGL.

\- When you evaluate new technologies which may become part of your daily
work, don't stop at the tool, but look at the context around it. RUST is good
for system development. Would you like a job in that area? I'm basically a PHP
developer, but man how much I would like to escape from it. I'm currently
learning Elixir, as it looks like the Ruby of the next decade. I bet there
will be a _lot_ around it in web area.

\- I force myself to switch off the mac after 8 pm. Before, I could sit there
all the day and a good part of the night. Doing something else, especially if
it involves physical activity, often helps me seeing more clearly myself, my
real interests, and above all works as an antidepressant.

After all of this, I'll fail and be forced to return to Italy anyway. In that
case, I'll give up coding and learn doing pizzas.

~~~
EugeneOZ
Rust is good for web-development too. And name is Rust, not RUST.

------
viraptor
While other comments are great, I don't think the things you listed as new
interests are really that diverse. As a security person I don't use C that
often, but it's really useful to know well and gives you the knowledge of
memory management that other languages will not. But if possible, I'd write
any new user facing service in rust/go due to the safety they provide.

If those technologies excite you, great! Maybe you'd rather do security / be a
generalist. Just make sure that's the path you choose rather than just looking
for escape from boring enterprise software. If it's that, then see other
answers and take a break.

------
partycoder
Well, enterprise environments are in many cases are not early adopters. They
may need to comply with different standards, policies or guidelines that make
technology adoption slower.

There might be a division in your company dealing with newer technologies. You
can try to switch there, or try to join a startup that is more akin to your
technology preferences.

Regardless of what you prefer, I strongly suggest that you join a meetup (see
meetup.com) that is related to your interests. You will be learning new things
and connecting with people that share your interests. If you lack the time,
hang out in IRC channels and join interesting conversations.

------
zubat
Find something that seems challenging and maybe a little scary. Maybe that
means getting away from development somehow and picking up a complementary
skill. You've already seen a lot of aspects of development, but in the larger
picture any development job is just one segment of how a business operates. As
long as you feel like you're really changing and not just staying in your
comfort zone you'll feel alive.

Edit: And try making it more than just a cursory whim. Write up a whole
document of what you do and how you plan to do it, as if someone else had to
approve it. That really tests your resolve up front.

------
ilaksh
Work frustrations: find a better job, if you can. Not every software job in
Italy has the problems you mention. Of course, its easy to say that, hard to
find a really good job. I think honestly most people are frustrated one way or
another with their job. Some are better than others though. A steady job
though, in a way, is a good job, even if its a bad job.

Focus: its healthy to try lots of different things, there are lots of
interesting areas. Maybe if you can get a better job, they will be using a
particular new technology, and then that will motivate you to focus more on
that.

------
asimuvPR
What do you want to do?

What is stopping you from doing it?

What can you do to remove the obstacles?

Can you work around the obstacles?

Note: Whenever I find myself in such situation these questions help figure out
the next step. I posted them with hopes to help the OP.

------
drewm1980
An italian expat colleague studying in Belgium explained to me that Italy is
so beautiful that it has to have severe societal problems just to maintain
homeostasis; otherwise everyone else would move there. If it's any
consolation, there are people in colder, rainy countries, with worse food, and
with cultures where next door neighbors don't even know each other's names,
looking at Italy and wondering if they should accept some boring job there for
the other benefits.

------
bobosha
I would suggest trying to contribute to various open-source projects e.g. in
machine learning ("deep learning" is all the buzz). You could pick up a tool
like Keras and see if that piques your interest. Similarly, you could try
other areas such as security and see if you can contribute to some of the OSS
such as Snort or OSSEC.

Personally I find trying to work on an OSS project the best way to "try-
before-you-buy".

------
wlievens
A very vague comment but here goes: IIRC Italy is a pretty significant partner
in ESA projects, maybe there are some interesting challenges in that space?

~~~
Tharkun
I was involved with a couple of ESA and EU FP7 projects. They're a joke. More
paper than code is produced, and none of the code ends up being used.

~~~
nickpsecurity
Wouldn't surprise me if high waste ratio but let's give credit where due. The
first, open-source CPU/SOC's were result of ESA:

[http://ramp.eecs.berkeley.edu/Publications/LEON3%20SPARC%20P...](http://ramp.eecs.berkeley.edu/Publications/LEON3%20SPARC%20Processor,%20The%20Past%20Present%20and%20Future.pdf)

Genode OS and some static analysis tools came up under FP7. I bet I'd find
more with time.

------
didibus
You sound unhappy, and if so, it won't disappear without concrete change.
Change your job, change your department, change your neighborhood, change your
girlfriend, change your friends, change your morning routine, you have to
change something or nothing will change. I hope this is self-evident.

Since this is mostly work related, I'd say change your job. You want to find a
place where you can work with psychological safety. Psychological safety is
the condition where you feel safe to take risks, and be vulnerable to people
you interact with. It's proven ([https://rework.withgoogle.com/blog/five-keys-
to-a-successful...](https://rework.withgoogle.com/blog/five-keys-to-a-
successful-google-team/)) to be the most important factor in success and
employee satisfaction. You cannot achieve this by yourself, it is dependent on
the work culture of your workplace, and unless you have enough authority to
change the work culture, you'll have to keep switching job until you find a
place that has the culture you need to have psychological safety.

Trust me, at first glance, two jobs might appear similar, but work culture is
a very subtle arrangement of tiny details that add up to be the most
influential factor, and so, it's really hard to know without just trying the
work for a few months. But also, each and every workplace will have a vastly
different culture. So try other jobs, it's worth it.

Now about your lack of focus, that's normal. Try to work at two levels of
attention. Off course, you want to have some fun, learn some new things, be
curious. This is your intrinsic motivation, and do not kill it off by trying
to tell yourself you need to focus and bore yourself to death to become more
"professional". Don't try to have rewards take over it either, value a lesser
paid job if it allows you more creativity and freedom for you to learn and try
new things. This is the first level of attention, you enjoy the details, the
tech for tech's sake. Now also try to think more about the second level of
attention, imagine all the code you write is assembly language, and even
though such details are interesting, it is mostly the case because it is also
easy for you to work at that level. So spend some time learning about the
higher level. What happens if I consider all algorithms to exist as tools for
me to use, what problems can I become interested in solving at that layer.
This is when you realize it takes you closer to business problems. How do you
optimize the business needs, with the tools you have. How do you arrange
multiple systems together to scale, etc. Unfortunately, most people's CS
degree didn't go there, and so going to that level is hard, and most people
find hard things less interesting. If you put some more thoughts into hard
things though, they start to become easy, and suddenly, interesting again.

------
imaginenore
My brother in law worked in IT in Italy. He ended up quitting and working for
a US company. Makes a lot more money.

Italy is so far behind when it comes to the internet adoption, it's not funny.
It's also a rather poor country, especially among the young generation, many
young people live with their parents till 35-40. So you're much better off
making (or working on) a project that faces some of the more developed
countries (US, Australia, UK, Germany).

