Ask HN: Technology stall
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 ?
40 comments
[ 10.0 ms ] story [ 657 ms ] threadI 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.
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.
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.
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
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.
As for excersice, anyone in a desk based job needs to include movement as part of their day. I take a walk at lunchtime.
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.
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.
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.
If you can't, move to another country.
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.
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.
http://ramp.eecs.berkeley.edu/Publications/LEON3%20SPARC%20P...
Genode OS and some static analysis tools came up under FP7. I bet I'd find more with time.
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).
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).
Yeah.
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.
Personally I find trying to work on an OSS project the best way to "try-before-you-buy".
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).
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.
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.
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.
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.
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/
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.
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.
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.
- 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.
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.