Unfortunate "senior" and cry for last push forward

I need your specific advice on which way to start exercising, before I decide to fully support Exercism. Due to unfortunate decisions in my life, at the age of 57, as a software developer by profession, for more than 15 years I did all sorts of things in a company that has no understanding of IT teams, I worked in various technologies, but I did not specialize in any of them. Don’t pelt me with so many stones that I die immediately. I understand almost every piece of code I look at when I read and study it. When I get a task in a project, I’m slow to come up with what part of the code needs to be changed or something added, but I’m very afraid to do something right away because I’m insecure and I don’t know how to type the code by heart, because I don’t have good practice. I’m sad. Now I’m in a new company, I embarked on an adventure surrounded by younger colleagues, I have a lot of will and energy to learn and master tasks, but I don’t know how long the employer will have patience for me, who has no expertise in anything. I want to become a good worker for my employer and contribute to good work results. The work for now is legacy maintenance on Java 1.7, and in a few months we will go into refactoring. That’s why I would like to learn Java and databases, REST, microservices, Docker, etc. at home on my computer every day. If you understand how I feel in this situation, please advise me wisely and pedagogically on how to practice my craft in free time to be better at work. You can tell me how to start with Exercism just so that Java programming in the modern world becomes a good trade for me, for my improvement and to the satisfaction of my employer. And then I will support this interesting service. Thank you, kind wishes

If I may suggest a couple of things. Firstly, you should start being kinder to yourself. Spending so much time feeling inadequate sucks away energy that you could be putting towards becoming a better professional. I’ve found that meditation has helped me feel less anxious.

Secondly, if you have a good and open relation with your manager I’d ask them what you should focus on. Discuss your work priorities with them and what training is available for you and your fellow developers.

9 Likes

Congratulations on your will to succeed!

It’s very frequent for people to dabble in many things without gaining expertise in any one of them - so don’t blame yourself, it’s human :slight_smile:.

With practise, you can improve - very quickly. You can start off with the Java track in Exercism, though there might be a mismatch between the versions.

If I was being honest, I’d say that under a deadline of few months and risk of losing employment, enroll in a paid part-time bootcamp or such. That’d probably benefit you more in your circumstances. If you like Exercism and feels it fits your needs, we’re happy to have you here.

Over the coming years (or months, depending on your wishes), continue to try out new things while slowly deepening your skills in a particular part of programming you like/you’re already relatively good at.

I seriously doubt professional programmers memorize code by heart, but I can’t speak for them. That’s why we have tools like Stack Overflow and Copilot and what not to aid programmers. The critical issue (or so I’ve been told) is thinking like a programmer, not knowing code. I believe people have suggested good resources in the forum for such skills, I’ll edit the post later when I find them.

And while I fully get how it feels to be on the hot seat and do something, you get tremendous benefit by actually doing things publicly.

Be confident, and best of luck!

2 Likes

You are all right. If it weren’t for meditation, I would surely have disappeared a long time ago, banging my head against the wall because of regrets. That’s why I’m still standing and going, asking, learning. And something else that keeps me on my toes is the humane approach of people that you have shown. I am grateful. Yes, I am definitely watching and learning how to be kinder to this mess of a mind. Thank you, every day I listen a little bit to my manager in order to understand in which direction the project plans are going, to prepare myself. Be well

3 Likes

Incredibly. The community that won my heart in a couple of hours since I peeked to see the environment, that’s the community where I want to be. Yes, thinking in a programmer’s way, problem solving mindset… It would be useful for me to study that as well, because I think that for now this “can do” mindset is not enough. Be sure to report if you find such a source. I wish you all the best.

3 Likes

Note: I am half your age, so take what I say with the appropriate amount of salt.

(Also, I have never succesfully held a programming job.)

Subjectively slow, or slow compared to others, or…?

(Don’t be too impressed by people who just jump right in blind!)

Feeling slow seems entirely normal to me. It is how I feel much of the time, anyway. But I’m not sure it actually means much. Many people seem to think I’m very smart :person_shrugging:. Your feelings might be similarly misplaced.

The commonly suggested remedy to insecurity is exposure.

Feel free to try stuff at home, where ‘failure’ doesn’t matter as much. You might not achieve your set goals, but you will still learn many other things along the way. And the ‘failures’ might turn out to be fixable, or not that bad after all.

(Oh, and of course you are not the only insecure person here. I am as well, and likely quite a few others.)

This is normal.

Make sure you have efficient internet search routines and you’ll be fine.

I have set up a multitude of specialized search engines in my browser, and use these constantly.

If syntax is a problem for you, you could try making cheatsheets.

I do not think ‘practice’ will have much impact on your feelings of inadequacy, and therefore that it does not make much sense to blame the feelings of inadequacy on lack of practice.

‘Practice’ will get you to remember quite a few more things, but still not anywhere close to all the things you will encounter. So however much you practice, you’ll always keep that feeling of not knowing how to type things.

Which is not to say practice is useless! It is useful for other things; just not for memorizing the majority of stuff you will encounter.

Take care not to get stuck in trying to achieve mastery.

Mastery often is not necessary, and aiming for it gives plenty of opportunity to feel bad about not having achieved it yet.

When mastery is necessary, why, by the time this becomes apparent you probably are almost a master already! Such is the fortunate nature of humans.


I hope above helps you feel a bit better about yourself and the future.

Here follows my advice for becoming a better programmer.

Browse

Read: Search less, browse more • Buttondown

Read lots of stuff, and remember that the things you read about exist. You don’t need to practice using them. You don’t even need to remember their names! Just remember they exist; you’ll find them back whenever you need them later, through search.

Knowing about lots of different things will also boost your creativity.

Follow your nose

When you come across something really interesting, feel free to dive into it. These moments are when your learning will be most efficient.

Conversely, when you come across something that you think you might be more interested in later, feel free to postpone its study.

Enjoy

I hear great things about joy. Apparently it is extremely useful in learning. If it is accessible to you, be sure to seek it out and to use it.

5 Likes

I wanted to express my deepest gratitude for the incredible encouragement and support you provided when I vulnerably exposed my weaknesses. Your concrete words of support and the strength displayed by you and others have left a lasting impact on me.

“I have set up a multitude of specialized search engines in my browser, and use these constantly” - can you guide me on what you did and how?

With heartfelt appreciation

1 Like

Started coding 30 years ago and working with code professionally for 20 years, I saw already some different generations in this field. We (my generation) started doing this stuff because it was fun for us. Nobody really cared about computer science these days. So pragmatism was really important. I actually have a degree in computer science, but really almost every “young” developer is more about data structures, alogrithms and patterns as I ever was. Those things are important. But gut feeling is way more (in my opinion and experience). Unfortunatelly, job interviews think different about that.

Reading code of others is one part and very important. But writing simple and easy code is actually complicated. When you see code that feels like an 1h job, it usually needed 1 day. :wink: But this is usually never trained by job. But with writing a lot of code. Going through many iterations. And this is where this community can help. Mentors can help learning this a bit faster. And we are open for general questions and discussions, too.

I mostly focussed a lot on the business side of the code. Which helps, because many developers focus way too much on the technology. Especially with more working experience, those positions can be really great.

When you mention “modern Java” I think about exactly this mentioned situation, which is full of DSA and patterns. So at least in this environment I cannot give much advice. But I’m sure it helps to focus on one thing after another. For example, checking about microservices and different implementations. Like RESTful services or gRPC and so on. Think about some bigger pictures instead of only code. I’m sure that can be a great benefit.

Many technology things are really hype and change. But having the ability to see the bigger picture will always be important.

3 Likes

BTW, check out the Discord channel.

1 Like

I use Chrome. The details are probably different in other browsers.

chrome://settings/searchEngines contains two lists of search engines, the second called «Site search». Here you can add shortcuts to site-specific search engines. Among many others, I have added

  • py for the Python documentation
  • rs for the Rust documentation
  • h for Hoogle
  • e and nl for the English and Dutch Wikipedias
  • wikt and translate for Wiktionary and Google Translate
  • y for YouTube
  • maps for Google Maps
  • etc.

Now, when I wish to look up Python’s function reduce, I type

Ctrl+LpySpacereduceEnter

(The Ctrl+L places the cursor in the url field; you could also click instead.)

I am then promptly taken to https://docs.python.org/3/search.html?q=reduce, which (at least this time :persevere:) lists as the first entry the page I’m looking for.

When adding a search engine, you need to specify to which url you wish it to point. The url I entered for py is https://docs.python.org/3/search.html?q=%s: the %s bit is the part that is replaced with the query.

1 Like

Learning new skills can be scary and intimidating. No one likes making mistakes or feeling like a beginner. However, everyone starts out as a beginner and makes mistakes. Mistakes are the best way to learn! I try to embrace my mistakes by thinking of them as lessons and learning opportunities.

At work, hopefully code goes through a code review process. If you can find someone to act as a mentor, you could pass your code reviews through them, first. The review process should, in theory, help catch the obvious bugs and mistakes, reducing the business risk associated with code changes.

2 Likes

safwansamsudeen wrote:
If I was being honest, I’d say that under a deadline of few months and risk of losing employment, enroll in a paid part-time bootcamp or such. That’d probably benefit you more in your circumstances. If you like Exercism and feels it fits your needs, we’re happy to have you here.

I don’t see that a ‘bootcamp’ and Exercism are mutually exclusive. The level of mentorship here is amazing. I think there is a way to use an Exercism track in the language you’re doing the bootcamp in as a backup for getting one on one help when necessary. The exercises on a track range widely over the concepts that comprise the language. So find an exercise that covers the concept you’re learning in bootcamp, do enough of it to submit it for code review – if you submit from your own system it doesn’t need to have passed the tests – and soon you have one on one communication with people eager to make sure that you understand the concepts, the structures, the applications, the pitfalls and the extensions of what you’re learning in bootcamp.

2 Likes

I agree. I suppose that today one should keep in mind the broader picture, a perspective combined with familiarity with patterns. I am glad that there are other similar people who first look at the context, and then divide the tasks. Thank you for your kind response.

2 Likes

@zeljkobosnjak Technology is most relevant with business context. And while many young developers are masters in there technical field, for thinking outside the box, life experience helps a ton.

1 Like

Thanks for the different perspective! I agree that it’s not necessarily mutually exclusive - what I meant was that for a fast paced, more targeted, learning process, bootcamps may be better as a primary source. I really like the bootcamp + Exercism idea!