26 Minor edits to enhance clarity. Fixed a few typos.
source | link

You have not lost any years, you learned many things. http://norvig.com/21-days.htmlTeach Yourself Programming in Ten Years is providingprovides a mind-provoking insight. And you need toYou should also read Bullshit jobs, it is mind provoking and covers quite well software development jobs, since most software projects (more than half of them) are somehow "failing"failing.

And you alsoYou have learned how to behave atin the workplace. And that, which is valuable on a resume. If you dream (IMHO wrongly) of climbing the management ladder, be aware today of the Peter's principle and the related Dilbert principle.

At last, please realize that software technology is by essence very brittle and don'tdoesn't last long. What was a buzzword in 2016 will become old-fashion (or legacy code) in 2022.

What matters much more are What matters much more are programming conceptsprogramming concepts  and and software development skillsskills (see also softwareheritageSoftware Heritage for an important insight), and the ability to learn new things, including even new problem domains. All of this lastlasts for an entire career, and all of them are appreciated and valuable onin the job market.

As instances of programming conceptsprogramming concepts, consider non-exhaustively for example  : algorithms that you have used in your code, independently of the programming language; computer science concepts - including operating systems and their API such as POSIX or WinAPI or Sockets, protocols such as HTTP or SMTP, DBMS such as PostGreSQLPostgreSQL or MongoDB, distributed computing techniques such as MapReduce, asynchronous message passing or remote procedure calls, etc.. etc. Mention a short list of high-level programming concepts in your resume.

As software development skillssoftware development skills, consider the various programming languages you know (C++, Java, SQL, your shell), other more or less "computer"computer languages you are familiar with (such as CSS, HTML, PDF, LaTeX, OOXML, DocBook, XML, JSON, DOM ..etc.), and your familiarity with several software engineering tools (version control tools like gitGit, build automation tools like make or ant, source code editors or IDEs like emacs or Eclipse) that you practice daily. Write about all of them (in a single paragraph!) in your resume. But emphasize in that CV your ability to quickly learn how to use new software engineering tools and learn new computer languages.

For example, I first programmed in 1974 on punched cards, but the programming language used at that time (PL/1), and the OS I did use (MVS with JCL) at that time have been forgotten, and I forgot many details about them. Later, I professionally programmed in C programming language (actually I was mostly metaprogramming in C around 1990), but today C is out of fashion (so I'm also using C++14), and I might learn Rust and I did code, a few years ago, some software in Go.

Wrong perception of yours. You did learn a lota lot (including stuff I mentioned above), because you have improved some skills, you just are not yet capable of writing all the stuff you did learn on your resume. In simpler words, you just don't know all the things you did learn. And learning is unrelated to any training your company is paying for you. With an access to Wikipedia and to many other internet resources on the Internet, (including StackOverflowStack Overflow), you can (and probably did) learn a lot from your workplace. 

There is a Russian saying Век живи - век учисьВек живи - век учись (my late parents repeated that weekly to me when I was a kid): if you live for a century, you have to learn during a century.If you live for a century, you have to learn during a century. It applies to both you and me.

Read about the impostor'sImpostor syndrome (even now, even at the age of 60, I still tend to feelfeel it). Be however aware that most job offers (written by HR) are requiringrequire an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.

I amI'll be 60 years old in augustduring August 2019, and I have spent all of my career (except one sabatticalsabbatical year at INRIA) as some computer scientist research engineerComputer Science Research Engineer at CEA, since 1985, working in the same organization (of 16000~16000 people). I essentially had two roles: one at its DEN division, and another at its DRT division. I switched teams only a few times -perhaps, perhaps 3 times-, in my entire career (e.g. the colleagues I have today are nearly the same as I did have in 1999, and the unit I am working inwith, called a lab of about 25 permanent staff, keeps the same name).

I have written more than a million lines of code during my career so far. If I consider amongst them what code has actually been used by other people in real life (not just cited in some paper), then honestly I could only name the GCC plugin feature and the less than 10KLOC10K lines of code I contributed to GCC. During the last 20 years, it honestly is the only piece of code, written by me, that isI feel has been useful to others.

And I am not alone. If you start reading papers and books on software project management (start with the MythicalThe Mythical Man-man monthMonth please, it is a classic of its kind), you'll understand that most software projects are failinggenerally fail. The typical failure rate of software projects is still aboutaround 50% even in 2019.

I have been naive enough to only understand only very recently that my actual role (not the one mentioned on contracts, of course) is to be the support of corporate tax optimization, (by research tax credit done by corporations).

And the most precious thing a software developer learns is not about any particular kind of software technology (such as Java Servlets). It is related to practice, and the relation between your day-to-day job and computer scienceComputer Science. Just ask yourself honestly: have you understood all the details of Introduction to AlgorithmsIntroduction to Algorithms* (or any equivalent book or university course)? Between you and me, I did not. And that is more than thirty years that I am reading such books. My hairs are white, I am grand-father 7 times....

If you want to learn even more things, I can give a very simple recipe: contribute, during your personal free time (e.g. a few hours every week-endweekend, and perhaps 30 minutes every other working day, during the evening, at home), on any existing free software project (you'll find thousands of them on githubGitHub & gitlabGitLab), but don't choose a huge project (but the one with only a few hundred thousand lines of code, and several dozen of fellow programmers). Use your own personal computer for that (not a PCthe one belonging to your employer). Mention that in your resume.

Perhaps, even take time to learn a new programming language while doing that, e.g. contribute to some free software project in a language you are not using at work. You'll become more competitive than your fellow programmers who did not that. Of course, install some Linux distribution on your home personal computer (since Linux is mostly made of free software, and since it provides an excellent development environment for coders). And since you contribute to an existing free software project, you'll learn even more how to work in a team, and the team working on that particular project will teach a lot of things to you.

For example, you are now a Java expert. Then contribute, onin your free time, to some existing Guile extension project. You'll learn both a new programming language (Scheme, the language used in SICP, a freely downloadable book -still, which, still today, is the best introduction to programming that I know-, that every programmerevery programmer should have read), and a new approach to programming (embedding an interpreter in some existing program). And that is very valuable on the job market place (much more than any particular technology), because you then show -todemonstrate to the potential employers- that your mind is flexible:, i.e., you are able tocan learn another programming language, and another way of programming.

Of course, don't become tied to one particular programming technology. But you know that already!

NBOf course, don't become tied to one particular programming technology. But you now know that already!


NB: For me, IDE is a buzzword for source code editors. My favorite IDE is emacsEmacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).

PS.PS: If you want to contribute to some weird free software project (to which a very active contributor is an Indian software developer, Abhishek, working on that project on his spare time while being employed full-time), read this draft technical report (skipping the few mandatory pages for European bureaucracy) then. Then, if the ideas there are interesting you, contact me by email to basile@starynkevitch.net. But the free software project I have in mind is more a research project than a development one, and it does share most of (but not all) the ideas explained in that report, while having different goals. And that, Abhishek is Abhishek is learning a lot of new thingslearning a lot of new things* while working on that free software project.

You have not lost any years, you learned many things. http://norvig.com/21-days.html is providing a mind-provoking insight. And you need to read Bullshit jobs, it is mind provoking and covers quite well software development jobs, since most software projects (more than half of them) are somehow "failing".

And you also learned how to behave at the workplace. And that is valuable on a resume. If you dream (IMHO wrongly) of climbing the management ladder, be aware today of Peter's principle and the related Dilbert principle.

At last, please realize that software technology is by essence very brittle and don't last long. What was a buzzword in 2016 will become old-fashion (or legacy code) in 2022.

What matters much more are programming concepts  and software development skills (see also softwareheritage for an important insight), and ability to learn new things, including even new problem domains. All this last for an entire career, and all of them are appreciated and valuable on the job market.

As instances of programming concepts, consider non-exhaustively for example  : algorithms that you have used in your code, independently of the programming language; computer science concepts - including operating systems and their API such as POSIX or WinAPI or Sockets, protocols such as HTTP or SMTP, DBMS such as PostGreSQL or MongoDB, distributed computing techniques such as MapReduce, asynchronous message passing or remote procedure calls, etc... Mention a short list of high-level programming concepts in your resume.

As software development skills, consider the various programming languages you know (C++, Java, SQL, your shell), other more or less "computer" languages you are familiar with (such as CSS, HTML, PDF, LaTeX, OOXML, DocBook, XML, JSON, DOM ...), and your familiarity with several software engineering tools (version control tools like git, build automation tools like make or ant, source code editors or IDEs like emacs or Eclipse) that you practice daily. Write about all of them (in a single paragraph!) in your resume. But emphasize in that CV your ability to quickly learn how to use new software engineering tools and learn new computer languages.

For example, I first programmed in 1974 on punched cards, but the programming language used at that time (PL/1), and the OS I did use (MVS with JCL) at that time have been forgotten, and I forgot many details about them. Later, I professionally programmed in C (actually I was mostly metaprogramming in C around 1990), but today C is out of fashion (so I'm also using C++14), and I might learn Rust and I did code, a few years ago, some software in Go.

Wrong perception of yours. You did learn a lot (including stuff I mentioned above), because you have improved some skills, you just are not yet capable of writing all the stuff you did learn on your resume. In simpler words, you just don't know all the things you did learn. And learning is unrelated to any training your company is paying for you. With an access to Wikipedia and to many other internet resources (including StackOverflow), you can (and probably did) learn a lot from your workplace. There is a Russian saying Век живи - век учись (my late parents repeated that weekly to me when I was a kid): if you live for a century, you have to learn during a century. It applies to both you and me.

Read about the impostor's syndrome (even now at the age of 60, I still tend to feel it). Be however aware that most job offers (written by HR) are requiring an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.

I am 60 years old in august 2019, and have spent all my career (except one sabattical year at INRIA) as some computer scientist research engineer at CEA, since 1985, working in the same organization (of 16000 people). I essentially had two roles: one at its DEN division, and another at its DRT division. I switched teams only a few times -perhaps 3 times- in my entire career (e.g. the colleagues I have today are nearly the same I did have in 1999, and the unit I am working in, called a lab of about 25 permanent staff, keeps the same name).

I have written more than a million lines of code during my career. If I consider amongst them what code has actually been used by other people in real life (not just cited in some paper), then honestly I could only name the GCC plugin feature and the less than 10KLOC I contributed to GCC. During the last 20 years, it honestly is the only piece of code, written by me, that is useful to others.

And I am not alone. If you start reading papers and books on software project management (start with the Mythical-man month please, it is a classic of its kind) you'll understand that most software projects are failing. The typical failure rate of software projects is still about 50% even in 2019.

I have been naive enough to only understand very recently that my actual role (not the one mentioned on contracts, of course) is to be the support of corporate tax optimization, (by research tax credit done by corporations).

And the most precious thing a software developer learns is not about any particular kind of software technology (such as Java Servlets). It is related to practice, and the relation between your day-to-day job and computer science. Just ask yourself honestly: have you understood all the details of Introduction to Algorithms (or any equivalent book or university course)? Between you and me, I did not. And that is more than thirty years that I am reading such books. My hairs are white, I am grand-father 7 times....

If you want to learn even more things, I can give a very simple recipe: contribute, during your personal free time (e.g. a few hours every week-end, and perhaps 30 minutes every other working day, during the evening, at home), on any existing free software project (you'll find thousands of them on github & gitlab), but don't choose a huge project (but one with only a few hundred thousand lines of code, and several dozen of fellow programmers). Use your own personal computer for that (not a PC belonging to your employer). Mention that in your resume.

Perhaps even take time to learn a new programming language while doing that, e.g. contribute to some free software project in a language you are not using at work. You'll become more competitive than your fellow programmers who did not that. Of course, install some Linux distribution on your home personal computer (since Linux is mostly made of free software, and since it provides an excellent development environment for coders). And since you contribute to an existing free software project, you'll learn even more how to work in a team, and the team working on that particular project will teach a lot of things to you.

For example, you are now a Java expert. Then contribute, on your free time, to some existing Guile extension project. You'll learn both a new programming language (Scheme, the language used in SICP, a freely downloadable book -still today, the best introduction to programming I know- that every programmer should have read) and a new approach to programming (embedding an interpreter in some existing program). And that is very valuable on the job market place (much more than any particular technology), because you then show -to potential employers- that your mind is flexible: you are able to learn another programming language, and another way of programming.

Of course, don't become tied to one particular programming technology. But you know that already!

NB. For me, IDE is a buzzword for source code editors. My favorite IDE is emacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).

PS. If you want to contribute to some weird free software project (to which a very active contributor is an Indian software developer, Abhishek, working on that project on his spare time while being employed full-time), read this draft technical report (skipping the few mandatory pages for European bureaucracy) then, if the ideas there are interesting you, contact me by email to basile@starynkevitch.net. But the free software project I have in mind is more a research project than a development one, and it does share most of (but not all) the ideas explained in that report, while having different goals. And that Abhishek is learning a lot of new things while working on that free software project.

You have not lost any years, you learned many things. Teach Yourself Programming in Ten Years provides a mind-provoking insight. You should also read Bullshit jobs, it is mind provoking and covers quite well software development jobs, since most software projects (more than half of them) are somehow failing.

You have learned how to behave in the workplace, which is valuable on a resume. If you dream (IMHO wrongly) of climbing the management ladder, be aware today of the Peter's principle and the related Dilbert principle.

At last, please realize that software technology is by essence very brittle and doesn't last long. What was a buzzword in 2016 will become old-fashion (or legacy code) in 2022.

What matters much more are programming concepts and software development skills (see Software Heritage for an important insight), and the ability to learn new things, including even new problem domains. All of this lasts for an entire career and all of them are appreciated and valuable in the job market.

As instances of programming concepts, consider non-exhaustively for example: algorithms that you have used in your code, independently of the programming language; computer science concepts - including operating systems and their API such as POSIX or WinAPI or Sockets, protocols such as HTTP or SMTP, DBMS such as PostgreSQL or MongoDB, distributed computing techniques such as MapReduce, asynchronous message passing or remote procedure calls etc. Mention a short list of high-level programming concepts in your resume.

As software development skills, consider the various programming languages you know (C++, Java, SQL, your shell), other more or less computer languages you are familiar with (such as CSS, HTML, PDF, LaTeX, OOXML, DocBook, XML, JSON, DOM etc.), and your familiarity with several software engineering tools (version control tools like Git, build automation tools like make or ant, source code editors or IDEs like emacs or Eclipse) that you practice daily. Write about all of them (in a single paragraph!) in your resume. But emphasize your ability to quickly learn how to use new software engineering tools and learn new computer languages.

For example, I first programmed in 1974 on punched cards, but the programming language used at that time (PL/1), and the OS I did use (MVS with JCL) at that time have been forgotten, and I forgot many details about them. Later, I professionally programmed in C programming language (actually I was mostly metaprogramming in C around 1990), but today C is out of fashion (so I'm also using C++14), and I might learn Rust and I did code, a few years ago, some software in Go.

Wrong perception of yours. You did learn a lot (including stuff I mentioned above), because you have improved some skills, you just are not yet capable of writing all the stuff you did learn on your resume. In simpler words, you just don't know all the things you did learn. And learning is unrelated to any training your company is paying for you. With access to Wikipedia and many other resources on the Internet, (including Stack Overflow), you can (and probably did) learn a lot from your workplace. 

There is a Russian saying Век живи - век учись (my late parents repeated that weekly to me when I was a kid): If you live for a century, you have to learn during a century. It applies to both you and me.

Read about Impostor syndrome, even at the age of 60, I still tend to feel it. Be however aware that most job offers (written by HR) require an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.

I'll be 60 years old during August 2019, and I have spent all of my career (except one sabbatical year at INRIA) as some Computer Science Research Engineer at CEA since 1985, working in the same organization (of ~16000 people). I essentially had two roles: one at its DEN division, and another at its DRT division. I switched teams only a few times, perhaps 3, in my entire career (e.g. the colleagues I have today are nearly the same as I did have in 1999, and the unit I am working with, called a lab of about 25 permanent staff, keeps the same name).

I have written more than a million lines of code during my career so far. If I consider amongst them what code has actually been used by other people in real life (not just cited in some paper), then honestly I could only name the GCC plugin feature and the less than 10K lines of code I contributed to GCC. During the last 20 years, it honestly is the only piece of code, written by me, that I feel has been useful to others.

And I am not alone. If you start reading papers and books on software project management (start with The Mythical Man-Month, it is a classic of its kind), you'll understand that most software projects generally fail. The typical failure rate of software projects is still around 50% even in 2019.

I have been naive enough to understand only very recently that my actual role (not the one mentioned on contracts, of course) is to be the support of corporate tax optimization, (by research tax credit done by corporations).

And the most precious thing a software developer learns is not about any particular kind of software technology (such as Java Servlets). It is related to practice, and the relation between your day-to-day job and Computer Science. Just ask yourself honestly: have you understood all the details of Introduction to Algorithms* (or any equivalent book or university course)? Between you and me, I did not. And that is more than thirty years that I am reading such books. My hairs are white, I am grand-father 7 times...

If you want to learn even more things, I can give a very simple recipe: contribute, during your free time (e.g. a few hours every weekend, and perhaps 30 minutes every other working day, during the evening, at home), on any existing free software project (you'll find thousands of them on GitHub & GitLab), but don't choose a huge project (but the one with only a few hundred thousand lines of code, and several dozen of fellow programmers). Use your personal computer for that (not the one belonging to your employer). Mention that in your resume.

Perhaps, even take time to learn a new programming language while doing that, e.g. contribute to some free software project in a language you are not using at work. You'll become more competitive than your fellow programmers who did not that. Of course, install some Linux distribution on your home personal computer (since Linux is mostly made of free software, and since it provides an excellent development environment for coders). And since you contribute to an existing free software project, you'll learn even more how to work in a team, and the team working on that particular project will teach a lot of things to you.

For example, you are now a Java expert. Then contribute, in your free time, to some existing Guile extension project. You'll learn both a new programming language (Scheme, the language used in SICP, a freely downloadable book, which, still today, is the best introduction to programming that I know, that every programmer should have read), and a new approach to programming (embedding an interpreter in some existing program). And that is very valuable on the job market place (much more than any particular technology), because you then demonstrate to the potential employers that your mind is flexible, i.e., you can learn another programming language and another way of programming.

Of course, don't become tied to one particular programming technology. But you now know that already!


NB: For me, IDE is a buzzword for source code editors. My favorite IDE is Emacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).

PS: If you want to contribute to some weird free software project (to which a very active contributor is an Indian software developer, Abhishek, working on that project on his spare time while being employed full-time), read this draft technical report (skipping the few mandatory pages for European bureaucracy). Then, if the ideas there are interesting you, contact me by email to basile@starynkevitch.net. But the free software project I have in mind is more a research project than a development one, and it does share most of (but not all) the ideas explained in that report while having different goals. And that, Abhishek is learning a lot of new things* while working on that free software project.

25 added 649 characters in body
source | link

3) I will be just bitterly honest here - I am not eligible (skills wise) to get a job with a position expected of a 3 years experience guy.

Read about the impostor's syndrome (even now at the age of 60, I still tend to feel it). Be however aware that most job offers (written by HR) are requiring an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.

3) I will be just bitterly honest here - I am not eligible (skills wise) to get a job with a position expected of a 3 years experience guy.

Read about the impostor's syndrome (even now at the age of 60, I still tend to feel it). Be however aware that most job offers (written by HR) are requiring an unreasonable amount of skills. Understand that the job market (and corporate life in general) is a theater.

24 added 63 characters in body
source | link

NB. For me, IDE is a buzzword for source code editors. My favorite IDE is emacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).

NB. For me, IDE is a buzzword for source code editors. My favorite IDE is emacs.

NB. For me, IDE is a buzzword for source code editors. My favorite IDE is emacs. Also, hyperlinks are above to give bibliographical references (since I am old enough to have written technical reports before the existence of the Web).

23 added 8 characters in body
source | link
22 added 342 characters in body
source | link
21 added 342 characters in body
source | link
20 added 258 characters in body
source | link
19 added 258 characters in body
source | link
18 added 258 characters in body
source | link
17 added 258 characters in body
source | link
16 added 258 characters in body
source | link
15 added 258 characters in body
source | link
14 added 1044 characters in body
source | link
13 added 1213 characters in body
source | link
12 added 75 characters in body
source | link
11 added 79 characters in body
source | link
10 added 269 characters in body
source | link
9 added 269 characters in body
source | link
8 added 269 characters in body
source | link
7 added 269 characters in body
source | link
6 added 558 characters in body
source | link
5 added 558 characters in body
source | link
4 added 558 characters in body
source | link
3 added 558 characters in body
source | link
2 added 558 characters in body
source | link