Hacker News new | comments | ask | show | jobs | submit login
Ask HN: Technology stall
100 points by bidev81 on Aug 7, 2016 | hide | past | web | favorite | 39 comments
i'm an enterprise developer, specialized in .NET stack, i've been ranging from eCommerce, Media, Healthcare ad now Public Administration areas, it may sounds good, someone may says that i've been "lucky" to face with multiple biz domains, but is not all gold what'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.

When i started to work i thought, "nice, i'm paid for doing what i would have done i my free time !", but now looking at the current situation i'm not of the same thought anymore, i would move on to different fields but i can't focus on one in particoular, 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, does anyone ever been in a situation like mine ? and more... some advice on how to follow the right path ?

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.

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.

To the initial problem, this is pretty good practical advice. However, the bigger picture is to always remember burnout is the intersection of a long period of hard work coupled with a rising disinterest. Always ask the question: Are you having fun AND are you learning something? If the answer is "no" for both more than 1/2 the time, you need to find another gig. For no other reason than you're going to start sucking at the one you're at while you're consumed by burnout.

We could discover a breakthrough in AI any year now. But the possible is not the probable. Most of the revolutionary work done in computing was accomplished by 1980 or so. What's left at this point is incremental improvements on that. Still lots of work to do, but look outward from computing: there are many, many problems facing humankind right now. The world needs you. Your skill coupled with your humanity could be the difference between saving us from ourselves or a new dark age. Every second counts.

Completely feel you... I'm in the completely same situation. My main language in the past three years is generally Java, but I worked in Node.js, actively working in Scala (Play, Akka and the bunch) and now I'm taking a bit of Python in a side project. I generally like to work with different databases so switching is not that huge to me, as databases go.

But yet I feel left out. I see every day things about Elixir, D, Clojure, all kinds of different databases, front-end stuff coming up (although I'm purely back-end big-data/analytics/database guy), and it's anxious. I also have a soft-spot for IoT stuff. The thing is not helped when reading articles and comments that say you should touch as many paradigms as you can, learning a language each month, reading a book each week and so on. And if you don't you manage your time badly and you sleep too much. I'm not saying I don't invest into myself, I take webinars often and my Kindle is always by my hand, but jeez sometimes it's overwhelming.

I have the focus problem, but for different reasons. I don't have a job, and I'm excited about EVERYTHING, old and new.

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.

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.

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.

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

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-... (3 courses on Apache Spark using PySpark and introduction to simple machine learning and distributed computing)

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 (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).

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


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.

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.

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.

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.

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.

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.

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.

> 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.

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.

  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 
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:


  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?”

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.

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.

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

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.

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.

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.

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.

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.

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.

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".

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?

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.

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:


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

That's my experience working closer to research teams in general. Mostly papers to be published, long philosophical meetings and very really code.

Not saykng it's bad, obviously some minds are fit for that. But it might contribute more to burn out if seeing something in action is what you're really in need of (going back to OP's question).

Can't agree with you more. I'm currently in the business with FP7 and Horizon. What a pile of... It's all about buzzwords and overly complicated "architectures" which should be as general and vague as possible to dazzle the reviewers.

That's actually the impression I get at my company too.

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...) 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.

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).

Applications are open for YC Summer 2019

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact