Hacker Newsnew | past | comments | ask | show | jobs | submit | duttakapil's commentslogin

May I ask, what is your personal journey of learning to code? Did you also discover Lisp/Scheme through SICP? And what have you professionally used Scheme for?

I am currently going through SICP, and I am also interested in Rust, so this project is a great discovery! Maybe I can contribute to it also.


I learned to code primarily through school - I had the privilege of studying at Northwestern where a lot of the Racket people teach, so my first programming class was in Racket. I have worked through some of SICP and How to Design Programs. After Racket I learned some C, C++, and C#. Then taught myself python just independently doing some projects, ended up back taking a few classes in Racket, then one in Agda that got me down the programming language rabbit hole. Took a class in Rust and that got me working on Steel.

I haven't _directly_ used scheme professionally except for some steel scripts for automating some work flows and some racket programs for spark query plan analysis. I'd like to work in scheme more in my professional work, but for now I'm quite happy just working on it for fun.

Contributions are welcome! Feel free to either join the discord and ask questions there if you want a more chat based place, or open a discussion on github if you'd like to learn more. I have it on my TODO list to set up a matrix chat, just haven't gotten around to it - so apologies for having discord as the only chatroom.


Would love to get involved!


This is a very insightful comment actually. I think you are right in many ways. My brain is wired to constantly try going fast. Everything I am able to do, is mostly from short bursts of dopamine rush. If that rush slows down or stops, such as when dealing with frustration of not being able to make something work immediately, my brain starts to shut down - and then it's like trying to swim across dry land. Curiosity and desire for problem solving helps sometimes, when I am in the right headspace, but other times it's simply absent. The work starts feeling dreadful. Need to figure out some ways around this.


Have you tried out working on multiple projects or tasks at the same time?

When I hit a wall, it's often futile to continue working on that single problem. So I'll just leave it as is is for a day and work on something else.

When I revisit task one the next day, I often have a fresh approach or I'm able to spot that bug I just couldn't find the previous day.

Other devs seem to prefer working very "linearly", but I'm doing better if I juggle several tasks at once.


I have been thinking to do exactly this lately. Just keep switching between projects when I hit the walls, keep the momentum going somehow


Context for HN :

It's 2 am here right now. I wrote this post very quickly in about 30 mins on the recommendation of a friend to just take my mind off things before going to sleep. I was not expecting it to get any real attention, and so did not attempt to provide much context in the post.

Genuinely appreciate your comments, especially those with encouraging, emphatic words and guidance. Also great to read your own personal journeys as well.

Although I started learning to code 10 years ago, I have not actually been actively coding for all these years. I have worked as a full time dev professionally for maybe just 3 months, and quickly moved into management roles from there.

My primary expertise today is more towards product management, sales, marketing, etc than coding. I currently work in a Enterprise Sales role, and my goal is still being an entrepreneur and building companies.

Zooming out and looking at my entire history, I have spent very little actual time coding. This is the primary reason behind the struggle I express in this post. I feel frustrated with how much little time I have put into it over the years, and how little progress I have made.

Also, perhaps important to note, I have diagnosed ADHD, chronic anxiety disorder and some level of bipolar as well. I don't like to attach these as part of my personality, but it explains a lot of my impulsivity, grandiose thinking and mood swings, which contribute to my frustration significantly as well. Also the reason why I could never learn well in classroom or with tutors. Self-learning has always worked better for me.

The post is intentionally very generic and vague, and doesn't give any specific examples of what I was struggling with and why, simply because it was more of an emotional post to express my frustration from the past week. I also have not written anything in a long time, so this was a good excuse for me to quickly write and publish something.

I recently started working on a new side project, and I have a team of people working with me, but we have been falling short of hands, and so I decided to get more involved in the development, and things were going great until last week when I started trying to refactor our codebase. I hit many walls with things I did not fully deeply understand, and struggling to keep track of a lot of different changes as I was making them - thus ending up breaking things and compounding my frustration even more.

I am currently strongly motivated to get better at coding. That is what prompted me to talk to my friend, who is the best engineer I know, and who encouraged me to write down my thoughts and publish them.

I am certain that with persistence and consistency, I would get through and not struggle as much as I have in the past week.


Have been feeling very frustrated this past week working on something. Started wondering if I am dumb or is this actually hard. Decided to write a simple quick blog post on it -


Thanks for writing something like this.

I've come to feel that while I love reading HN, it's quite toxic as well. It's like the instagram of coding - every person is so smart, so authoritative, such breadth and depth of knowledge they are all making $300k/yr+ and profess how easy it is to find such a job. It can be really demoralising and even depressing for people who are struggling to be exposed to such potent concentration of things like that.

So it's great to hear someone being vulnerable and owning up to struggles.

I would say, my approach when I hit the types of feelings you express is always to drop down a layer to fundamentals. If X is hard, why is that? It probably means your knowledge isn't sound at some layer below the one you are working at. It sounds like a huge amount of your learning approach has been based on online learning and the issue with these is that they are usually very shallow. They teach you a direct skill but nothing underneath it. So drop down a level and just take time, to properly fill in those gaps. Steadily unravel what is going on one level down. Don't keep battering at the level above constantly getting frustrated. Build your knowledge at the level below. Learn the joy of patiently establishing a sound basis and a complete knowledge of the underlying principles on which something works.


It's hard.

The hardest part is the big gap between "I can write a function that does X" and "I can write non-trivial software that does Y".

That's where you're hitting walls - because there are a ton of them, and it is demoralising to try something that "should" be simple but end up spending numerous days and weeks fighting problems you didn't even realise existed.

Even experienced programmers have this issue. It's why a lot of us seem to think estimation is basically impossible. IMO it certainly is possible to estimate fairly accurately, but it requires a very good understanding of the problem, the technology, and the people involved.

First try to limit your problem space, only one or two new things to learn at a time. Use only mainstream ("boring") technology. Then spend a few hours every day banging your head against those problems. (Every day, not every weekend. A few hours, not 12 hours.) If you can, set goals you can achieve every week or two to keep morale up - small projects, proofs-of-concept, etc.

(I've been doing this for 20+ years, and if I'm working on stuff I'm comfortable with I'm pretty good. If I compare myself to people like John Carmack or Fabrice Bellard I discover am comparatively very very dumb indeed.)


Thanks for writing this.

I have added and removed about 4 million lines of code:

https://github.com/wekan/wekan/graphs/contributors

to WeKan Open Source kanban:

https://wekan.github.io

You are not dumb. It is normal to feel frustrated, when figuring out, step by step, how something works, and what to do. It is like labyrinth. Having enough breaks, taking a walk when needed, having enough coping skills or adding more of them, having patience to keep notes of what is current position in that labyrinth. If some way does not work, try some other way. Getting something working is victory feeling.

It is always about the basics. Many programming languages change syntax often. Some dependencies change.

For example, when writing some for database export:

1) There was no working code examples at documentation

2) Google etc searches had old info, did not work

3) I did not find from source code how it did work

4) ChatGPT, Bing AI etc examples did not work

5) So I tried with trial and error, what is correct syntax, character by character

For some error messages, sometimes Google search shows somebody having same problem, or even a fix. But if not, it's about reading source code of the software.

But this works only when code is available, like in Open Source.

If something is binary executeable, then there is need to decompile, read assembler, deobfuscate, etc. That means even more time required, I have not gone there yet. That is why I use and develop FOSS, when it is possible to more easily fix something, when it is broken.


I am certain you are not dumb, but personally I find that there are many things that I learn much faster when taught by other people.


Yo OP cool you commented here! At the very least I think your website is pretty good - and I like the prism logo. Being able to write up a post and have it get international eyes (via HN) is more than many people ever try to accomplish.

I often think of coding like making music: you don't need to be an expert at an instrument to make nice music - so much to the point where "making music" and "playing an instrument" can be considered very different things.


Frustration is something I can feel as well when I am stuck. It is not a productive emotional state. It means to feel stuck, and maybe I was even stuck before I began.

Sometimes I just need to take a step back and look at it the next day. Sometimes it helps, sometimes not. Sometimes taking a walk helps, or cycling, or taking a shower.

But when I feel frustrated, I know it's an uphill battle that will be mostly unproductive, mostly productive in getting a look at it, some reconnaisance.


I was learning Next.js long ago and got started with this tutorial : https://nextjs.org/learn/basics/create-nextjs-app. And then updated it as I needed


Very interesting point of view! Stephen Hawking was the first mentor in my life. He was a great source of inspiration for me, and I spent a lot of time trying to understand what his life must have been like, with his body failing, and yet still motivating himself to do such brilliant work.

The last bit about spreading your focus to your entire body is more about detaching yourself from the continuous on-going rumination of the mind, to pay closer attention to what's real right in front of you right now as a unbiased unfiltered consciousness, rather than whatever your mind is occupied with. My experience is that this is the single thing which when practiced enough times can immediately pull you out of your misery, especially if your misery is self-inflected.

The esoteric term for this practice is mindfulness. I personally exercise my own style of mindfulness, which is partly inspired by Stephen Hawking as well. I visualize my present moment the same way Hawking would describe the mechanics of the Universe in his books and shows. I would go to the microscopic level, zoom in, zoom out, follow the flow of energy, matter, cause, effect, I would imagine a quick timeline of the objects in front of me, where they came from, how they came into existence, I would see how everything is connected with each other, rather than being separate individual entities. I would pay attention to myself, all my senses, my perceptions, emotions, reactions, almost from a 3rd person pov. Like a Scientist observing a Monkey, and all my agitation and worries just disappear.

All of this helps me realign myself. It grounds me in a way that nothing else does. I find it quiet relaxing honestly


Me too! :D


Hello, author here.

I think I failed to communicate the core idea of the article here. Of course what I describe is a product of the human condition, my argument was simply that "intelligence" dials up that conditioning, resulting in the person being more prone to such suffering.

Everyone thinks, everyone questions, it's just that the intelligence tends to make you think and question a lot more, resulting more often in the separation of mind and body. There are many research studies on this subject as well, I mentioned one of them in the article : https://www.sciencedirect.com/science/article/pii/S016028961....

The other part of the article was focused more on our higher expectation from such people around us, setting them up for greater disappointment. And the limitations of intelligence, how cognitive biases can creep in even if you are a highly rational person.

Also thank you for expressing your concern and kind words, I am not actually dealing with an existential crisis at the moment, although I have in the past :)


Intelligence is just the ability to think logically (at least as defined by iq). What you mean is probably overthinking, anxiety, etc.


Yes, and it seems to be that brains with higher intelligence have stronger tendencies to "overthink" and thus triggering anxiety, irrational discomfort, etc. Everyone experiences this in general, but with higher intelligence the likelihood dials up. See this paper - https://www.sciencedirect.com/science/article/pii/S016028961... for reference


You have a point with being aware of where the “you” ends and things out of “your influence” begin. Accepting that something’s can’t be changed is a good point to reflect that “your” happiness should come from internally - the external is a bonus. Failure to accept this puts others and external factors in control of “your” happiness.


Yes. Accepting what you can and cannot control is essential. Worrying about things beyond your influence can be futile. Even within yourself, you might not be able to control your mind or even your life in it's entirety, but you can control what you pay attention to this second. Simply paying attention to the present, mindfulness practice, helps modulate your experience of life without actively trying to control it


Yes, I'm 19. And?


Based on the amount of feedback that I've received with an ageist attitude, I'm starting to wonder if it is even possible for people to criticize the piece without mentioning my age in a condescending tone.

My age has nothing to do with how this article reads. Maybe lack of experience in writing professionally, but not my age. I suggest you give the article another read, but this time try ignoring that innocent two digit number I publicly declared without any second thoughts (which I've deleted now, because I want genuine feedback).

And I'm not going to defend that generalized statement of mine. I don't agree with it fully myself anymore. There's no objective way of concluding which generation is/was the most arrogant and self-obsessed. My current stance is that, for every generation, the youth is always the most arrogant and self-obsessed, and the arrogance goes down as you grow older.

Thanks for the response though :)


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

Search: