Readit News logoReadit News
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
Mave83 · 7 years ago
where are you from?
amirsarancoder · 7 years ago
Bosnia and Herzegovina.
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
Mave83 · 7 years ago
where are you from?
amirsarancoder · 7 years ago
I am from Bosnia and Herzegovina.
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
graycat · 7 years ago
I'll respond and try to clean up the issue:

Broadly my guess is that the problem is too much advice on how to program, like being told to put your nose to the grindstone, shoulder to the wheel, and ear to the ground and then work in that position!

First, on how we can be "confident", let's make a few very simple points:

In some subjects, we do have some solid information.

E.g.: (1) If you want to be sure of the Pythagorean theorem, then there are many clear, short, rock solid proofs that will remove all doubt. (2) If you want to know when the next solar eclipse is, then basic physics from Newton's laws can give you an astoundingly accurate answer years into the future. (3) If you want to transmit a billion bytes of data over the Internet, then from coding theory there are some codes that can do really well at error detection and correction.

But in some subjects we don't have such clear, solid answers.

E.g.: (1) I recall very well that in high school I didn't know with much confidence what a girl I was dating thought of me, and I suspect, of course don't know for sure, that I was not nearly the first such boy!! (2) Tough to know what the US Federal Reserve will do to interest rates in 2019. We can't predict interest rates nearly as well as solar eclipses. Instead, interest rate predictions are a definite maybe.

Second, as an example, I'll outline how I became a "confident programmer":

I've been programming for a long time, back to Kemeny-Kurtz Basic, assembler, Fortran IV, Algol 60, PL/I F level, C, .... I skimmed through the first three volumes of Knuth's The Art of Computer Programming, paid close attention to radix sort, heap sort, and AVL trees, and learned a lot of applied math and the associated computing. In six weeks while teaching the business school course in computing at Georgetown University, I designed, wrote, and ran some software to schedule the full, planned fleet at FedEx, pleased the BoD and two experts from BoD Member General Dynamics, "solved the most important problem facing the start of FedEx" (F. Smith, founder, COB, CEO), enabled funding, and saved the company.

My Ph.D. dissertation was in stochastic optimal control with computing, e.g., some algorithms to make the computing faster, from about 64 years down to three minutes.

While working in an AI project at IBM's Watson lab, I cooked up some applied math and algorithms to do better than our AI work. I programmed the algorithms and published my work in Information Sciences.

I also taught computing in the MBA program at Ohio State University, was named Chair of the college computing committee, etc.

And there was more.

I was self taught. E.g., while I was teaching computing at Georgetown and saving FedEx, I'd never had any courses or instruction in computing. Taught courses? Yes. Taken courses? No! I still have had essentially no instruction, and have had no meaningful instruction, in computing.

Still, now I'm deep into my startup: The software is 100,000 lines of typing, about 24,000 programming language statements. I've plugged together my first server, based on an ASUS motherboard, an AMD FX-8350 processor (8 cores, 4.0 GHz standard clock speed), 16 GB of ECC main memory, etc.

Third, during this work, I heard about various lessons on how to be a better programmer. So, sure, I read The Mythical Man-Month, read lots of stuff about the challenges of writing and documenting good code, saw the interest in APL programming, Prolog and logic programming, the roles of block structure, exceptional condition handling, and scope of names in PL/I programming, saw the rush for Ada programming, saw structured programming, saw object oriented software design and programming, read about Backus and functional programming, did a lot in AI rule based programming, of course studied SQL programming (there's some of it in the code of my startup), etc.

Once I was flatly told that since I had done some Fortran programming, my brain "was forever damaged" for programming.

Lesson: There is a LOT of advice on programming. Yes, that advice is maybe more solid than predicting interest rates in 2019 or what women's Paris fashions will be next fall but, IMHO, not much more solid. Or, advice on programming is nowhere nearly as solid as, say, proofs of the Pythagorean theorem or using physics to predict solar eclipses.

In particular, it's possible, and maybe the best way, to do well at programming while essentially ignoring all the advice and just being self taught. Sorry 'bout that: Such a remark violates some politically correct norms, calls into question the importance of a lot of revered, respected, and coveted undergraduate teaching in computer science, and will rub some fur the wrong way. Sorry 'bout that, but I'm trying to respond to the OP.

IMHO, the important and really useful parts of programming remain a simple subject. Here are the high points: We (i) look at requirements, inputs, and outputs, (ii) get a high level design, likely exploiting the principle of divide and conquer, (iii) find needed algorithms, (iv) define storage, (v) write expressions to do the data manipulations, (vi) wrap the expressions in If-Then-Else, (vii) as a case of divide and conquer form those lines of code in functions/subroutines, (viii) handle exceptional conditions, (ix) design the code so that it will be easy enough to test, (x) test the code, (xi) document the code following "Given the code, without documentation only the programmer and God understand it; six months later, only God." So, write the documentation to explain, clearly, all the important thinking in the work.

I'm confident you can do (i) - (xi), and in that case you should be a "confident programmer".

My view is that the most difficult part of programming and the worst bottleneck to progress in computing is working with tools, e.g., object oriented programming classes, APIs (application programmer interfaces), USB (universal serial bus), etc. that way too often are not clearly documented. E.g., yesterday I was struggling with lack of documentation of Vcore, one of the motherboard voltages. What devices use Vcore? What Wattage is needed? What parts of the power supply provide that voltage and Wattage? But no way is poor documentation about tools a programmer is to use the fault of the programmer. In response, one approach for a programmer, a "confident programmer", is to stay close to old tools, known to be solid, and with many good examples of usage and maybe even some good documentation. E.g., for my first server for my startup, I deliberately went with a motherboard with an old BIOS instead of the newer UEFI.

Most of these lessons are much the same as or follow closely from lessons in projects going way back. E.g., the technique of divide and conquer is really old. How old? For that technique and more, the art goes back at least to military campaigns, designing ships to travel the oceans, construction of palaces, churches, and monuments, e.g., the Pyramids back 4000+ years.

So, for the OP: If you got started in programming, then there should be no good reason for you not to be a "confident programmer". Maybe all you need is what was passed out in the classic movie The Wizard of Oz. Or, I hereby confirm on you the title of Confident Programmer First Class with all the honors, rights, and privileges thereunto appertaining. Congratulations, and happy confident, programming.

amirsarancoder · 7 years ago
Thank you a lot for sharing your story and giving magnificent advice, I will think of this post the next time I write code.

Thank you for "Confident Programmer First Class". I will add it to my resume now. :P

amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
ToFab123 · 7 years ago
You could refresh your memories from the time before you started to complicate stuff by reading (or rereading) the marvelous book "code complete"

https://www.amazon.com/Code-Complete-Practical-Handbook-Cons...

amirsarancoder · 7 years ago
Thanks, will read it.
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
IIAOPSW · 7 years ago
Hey,

I've also noticed that my skill seems to be deteriorating a bit. I worry that I may have f'd my attention span. So I decided to run an experiment and see how high I can count in my head. Not out loud. Just count until you lose the thread as some other thought barges in.

I find that I only seem able to get to the low thousands.

I also find that I'm tired all the time. This condition seems to have developed slowly over the past year or so. I don't know when exactly and I have yet to find a doctor who can tell me why.

So I guess my question to you is, how high can you count in your head?

amirsarancoder · 7 years ago
Wow, my focus is out of control. I started skipping numbers when I was on 50.
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
rbelem · 7 years ago
Try to find other root causes. Anxiety, depression, vitamin/minerals/good fat deficiency. https://medium.com/@dr_eprice/laziness-does-not-exist-3af27e...
amirsarancoder · 7 years ago
I think that anxiety or depression can be a factor. Because before programming was just a hobby for me. Now I'm doing a coding bootcamp where I pay about $100/month which is a lot for my family. I have a lot of pressure on me to be good to get a job, since I am going all in for a tech career. I am going to school in the day and doing the coding bootcamp at night and I'm learning from other sources too because I feel like I have to work 120% to be better than other to have a better chance finding a job.

I'm not sure. :(

amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
pjc50 · 7 years ago
(Could do with context: how old are you? Are you doing this as a job? As a student?)

> When I was a beginner I could solve any problem those "coding challenge" websites, but now I simply can't. I haven't stopped coding since then, I was doing it every single day and I still got worse. Maybe I am just overcomplicating things when programming.

How has this happened? Probably you are overcomplicating things. I would say that one good tutorial is better than a thousand bad ones. I would also say to skip video tutorials entirely.

Can you find a mentor or colleague? Or even just fellow learner? Not everyone is an autodidact, it's quite rare.

amirsarancoder · 7 years ago
I'm 18 years old, I don't have a job. I am going to school right now (Electrical Engineering).

I live in Bosnia and Herzegovina, it's not a good place to live if you want to pursue an IT career. I don't have any friends that do programming that I can talk to and create programs together. I would love to have a mentor or a colleague to work with me. I've tried learning with other developers, but it didn't work out that well.

I really want to find a open source project that is meaningful to me and is on my skill level. I'm bored of doing stupid todo apps and calculators for learning.

If you know any good open source projects that I can contribute to easily that would be awesome.

amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
danso · 7 years ago
Can you give an example of what kind of programming challenge or task that you recently had difficulty working on? I think part of your problem is thinking that programming is a mostly monolithic, easily quantifiable kind of skill.
amirsarancoder · 7 years ago
In the first few months of programming I was able to create todo lists apps and simple games, but now I have a hard time structuring everything together and I don't know where to start.
amirsarancoder commented on Ask HN: Have I lost my skills in programming?    · Posted by u/amirsarancoder
ErrantX · 7 years ago
> Maybe I am just overcomplicating things when programming

This is probably the root of the problem. But there is good news because a) many people suffer from this and b) they tend to be good or at least experienced programmers

For example; we use FizzBuzz and some algorithm challenges to screen new hire candidates - the number of times an otherwise great programmer has submitted a 100 line behemoth (for something that should be less than 10) is unamusing.

As others have said; sounds like youve cracked programmig, you now need to hone your craft by learning engineering methods and problem solving.

This is best achieved by doing; try building something useful based on an ambiguous goal (if you let us know what programming languages/interests you have then it might help get more specific advice). Work your way up to submitting patches to open source projects - where youll get valuable feedback that will help hone your method

amirsarancoder · 7 years ago
- HTML - CSS - JavaScript - NodeJS - MongoDB - PHP - C# - Java

I've sorted the list as my knowledge is in them. HTML, CSS, JavaScript is where I'm best and PHP, C#, Java is where I'm worst.

Interests that I have are, Math, Programming, Electronics, Physics, Chemistry.

u/amirsarancoder

KarmaCake day26December 23, 2018View Original