Recommended Posts

The tricky thing about programming, and it's going to be tricky no matter how you learn it, is that it requires you to develop a unique mindset that doesn't really have much of an analogue in other fields. The code on the screen is a representation of an entire universe underneath it that doesn't necessarily behave how you expect. It takes practice!

I kind of want to argue against that, but then again there is some truth to it. Sorry if this post is already too off topic BTW, maybe we should move this convo to another thread?

I think programming on a certain level is about managing complexity, and as such it has analogues in EVERY FIELD. All fields probably have similar issues that a programmer might deal with. But yes, in programming that complexity is represented in abstractions and mathematical models, which can't be said for many other fields. Source code can be much more efficient in representing complexity than for example business processes that span humans and computer systems in other fields, or even physical systems. And you definitely need to learn some quite advanced skills to learn to play with these abstract models.

But at the source code level it's very easy to add accidental complexity - that's when programmers come up with the wrong abstractions and they end up making the whole system much more complex than it needs to be. I have personally seen the damage that a programmer with a lot of knowledge about new trends was able to make, convincing many people in our company that he knew what he was doing, and to some extent he did, but he also ended up leaving a big mess behind.

So the challenge in programming to me is about finding the right abstractions. In the real world (aka "other fields"), I think if you stumble on wrong abstractions, people will probably tell you and stop you. But in programming there is a lot of freedom in creating the abstract model* that represents what your program needs to do. And if you don't have the right mentors (often the case because good mentors are rare, in my experience) you can go in very wrong directions and even convince someone with a PhD that the thing you are doing is right, while it might not be.

But then again, it's not that serious. If you go in the wrong direction, you still learn from it and hopefully know better next time. And it doesn't mean you're a fraud (look up impostor syndrome, many people in programming apparently feel they might be frauds), it just means you made some mistakes and you can still learn a lesson and keep learning and try a different approach.

* [edit] also another challenge is that to manage the complexity of the model you actually need to use (or even invent) abstractions that don't necessarily have any correspondence to the real world things the program is dealing with. So some of the abstractions are solely about structuring the programs, and which abstractions are popular keeps changing over the years. Especially in web programming there are a lot of trends and things changing constantly, about what kind of abstrtactions are "in". I'm not super familiar with Python, but I think Python might be one of the most stable languages in this sense, that they don't keep changing how things are done. I might be wrong about that.

Share this post

Link to post

Share on other sites

This has been a cool discussion, sorry for not participating, took some much-needed holidays. Great post Erkki, though I'm not sure the meat of it is really for someone just starting out - it's extremely high-level.

As far as certifications go I never really needed to do that, I'm old enough that programmers were mostly self-taught anyway. I guess my master's degree counts somewhat. I think the best approach, as said by others before, is to pick something and mess with it. Languages that have a REPL (Read Evaluate Print Loop) are the most fun to experiment with, like for example the Javascript console in any browser, or the BASIC prompt for that matter. Or the immediate visuality of NetLogo is also a really nice way to get your feet wet.

For me the closest analogues to programming are 1) cooking and 2) writing, coming at it from opposite angles, but both focusing on communicating in a clear, unambiguous manner.

In cooking, you have a set of instructions, ie. a program. You the cook are actually executing the program, taking the role of the computer. However, unlike a computer, you're not a deterministic system that always does exactly as instructed. In fact, you might even go off and improvise a new dish. Then, if you want to enable other people to replicate that dish, you need to write it down in a way that lets other people read your instructions, perform them, and hopefully arrive at the same delicious result. Writing a recipe is like programming someone else's brain. A recipe is like a program: you start with data (ingredients) and through instructions transform the data into the desired configuration. Some actions are repeated often enough that you give them a special name (functions) so for example you could say

whisk(egg);
saute(onion, 5, MINUTES)

instead of expressly describing hand motions, pan temperature in degrees and the like. Good recipes are easy to follow and consistently produce the correct results.

Similarly, when writing, either a text or a program, you are trying to essentially capture a chain of information and logic in a way that lets the (reader/computer) internalise what you've written with minimal friction and ambiguity. A well-written program is almost exactly like reading a (admittedly very dry) essay with footnotes. There's a great book about this, called Clean Code - see here for a blog post about it.

Anyway, like Jon I'm always happy to help with specifics. Let me know!

Share this post

Link to post

Share on other sites

You're right, what I said is not that applicable to starting out. Sometimes I wish I could give advice to people who are going through a similar thing that I've gone through, but I usually can't because I forget (sometimes knowingly) what was going through my mind when I was just learning something. All I can say is that perhaps Python is indeed a good way to start. Although I've never used it for anything serious myself, I know they do use it at our company for some back-end systems.

Share this post

Link to post

Share on other sites

I use python extensively for work, and I think the best advice I could give is to find a book or blog or program that is specifically interested in data structures. I think understanding sets, lists, dictionaries, & strings is the key to understanding your tool set and how to solve the problems you're trying to solve. Getting comfortable with these concepts as mathematical and computer science objects will go a long way to having a core understanding of what the language is good at and good for.

Share this post

Link to post

Share on other sites

You may not keep working in Haskell or similar functional programming but getting your mind around writing pure functions is going to pay off in huge dividends if you end up getting serious about programming. This actually hooks into what Erkki wrote above a little bit.

(I've especially heard good things about the second one, it discusses things like choices of data structure like Jenn is talking about)

Anyway, because there's a metric shitton of nerds out there, and many of them have strong opinions plus the tools to put them into practice, there's about as many programming languages and paradigms out there as there's days in the week. I'd browse until you find something that suits you and then stick with that for a bit.

Share this post

Link to post

Share on other sites

Well I appreciate all the programming advice everyone gave me. Unfortunately, like many things in my life, I became obsessed with it and then promptly gave up. I promise myself and the good people of this forum that one day I'll return to it. I've also given up on learning German for the time being.

I think my gaming addiction kicked in again. I've been playing a lot of video games recently. The worst part is I know I'm in the depths of it right now. I'm not trying to be hyperbolic or anything, but I really do myself going through these crazy phases of addiction. Does anyone else go through this? What do you do to counter it? My normal cycle is let it ruin me until I become so embarrassed/bored/exhausted by it that I stop and eventually end up doing something productive. I know that's not healthy, but that's the way it is. How do you guys it?

On the other hand, I've become a lot more physically active. I've been playing 4-5 different sports a week and playing a 7v7 match of football a week which has been fun. I've also managed to get a DnD group together and started playing that after a long time of wanting to. I enjoyed the first session, but I think I'll enjoy it more next session now that I have a better idea of who my character is. It felt like I was just doing whatever was optimal to beat up the bad guys, but now I feel like I have some more motivations to do things.

In other news my girlfriend and I are thinking of moving to New Zealand to do a working holiday visa. Does anyone have any experience with it? Or done anything similar?

Share this post

Link to post

Share on other sites

Ah, surprising that we're broaching the topic. I was talking to my partner over lunch yesterday, and I started musing about the amount of time gaming is gobbling up in my day. Probably around 1 to 2 hours, spread over a few sessions. I added the hours I spend watching tv shows on Netflix, and confirmed what I suspected for a while: I'm wasting way too much time on gaming and watching tv.

Now, nothing wrong with it, nothing inherently. But I came to the conclusion that these hours I felt were the reward for a day well-spent. Something I'd look forward to. That system generally works, but I feel it's being perverted in some way. Nowadays, I actually feel a bit of stress when I think of wanting to do my work and have some gaming time. And I don't ever experience boredom anymore, which is kind of a loss, too. I'm always filling up every waking second with entertainment of some kind. But is that truly the point of my existence: experience pleasant entertainment? Being comfortable and entertained?

My suspicion is that if I were to cut out all of my daily gaming and most of my tv watching, I'll not only end up with a bunch of extra hours to do other, possibly more rewarding things in (learning new skills, piano and languages, and yes, reading, because I feel that's somehow different from watching tv), but I'll also experience the day in a different way. No longer as jam-packed as before. And therefore, I hope, my perception of time will shift from 'I don't have enough hours in the day to do everything I want' to 'I have an abundance of time and I don't have to rush anything anymore'.

I already experienced this shift a few times in my life. Whenever you go on holiday, that generally changes your rhythm for a while. But there was also one summer when I was 23 and I had a bout of RSI. This prevented me from gaming, so I ordered a crap ton of philosophy books and read them over the course of those few months. (Sometimes reading in my housemates' rooms, who were all slaving away at World of Warcraft, which I can tell you was a HUGE temptation, but also a fun one to resist.) I still remember that summer fondly, which makes me feel I should recreate that. What if I were to scrap all daily gaming (save for, say, one moment in the weekend where I am allowed to) and most of my daily tv watching, and see what that results in? If anything, it'll be an interesting experiment to shake things up.

Share this post

Link to post

Share on other sites

I think that with most nostalgia what you're trying to recreate is not so much a pattern of activity but an environment (ie. hanging out with friends in a low-pressure situation while feeling productively engaged).

There's only so much a person can do in a day without getting burnt out, and whatever relaxes you is good. If your relaxation is bringing you stress (and I mean the activity itself, not whatever obscure guilt accompanies not being 'productive') then it's time to change. Until then, take care of yourself. Trying to outcompete your imaginary self who is always doing something useful and is never tired is not a good idea.

I will say that I'm extremely happy with how my character has made me almost incapable of engaging with passive entertainment, meaning I skip most TV/series leaving more time for things I enjoy a lot more. So there's always room to optimise within relaxation, but that's going to be different for everyone.

Share this post

Link to post

Share on other sites

Good points! Ideally, life isn't an optimization min-maxing challenge, there has to be room for winding down. I do however suspect that there's good winding down and bad winding down, at least for me at this particular point in my life. No harm in trying to figure out which is which! And regardless of the results, it's a fun idea to change things up every now and again.

Share this post

Link to post

Share on other sites

So, I mentioned a friend with a real drink and drug problem a while back and how I was trying to talk to him and kind of reach him. Well, after he finally admitted what he was doing there was this moment of calm. Then after that, it got really interesting in a bad way. It became clearer that there was this vulnerability he now felt around me, and he kind of resented me for it. He started lashing out in really unnecessary ways and find a means to shout at me over minor things. Each time he would apologise about it and then, without any kind of introspection, do it again not long after.

I confronted him about it and he acted like I was crazy and that the pattern of abuse, apology and then acting like nothing had happened was nonsensical. After the this happened a number of times I just ended it. He then started harrassing me, and some of our other friends, cussing me out and generally being pretty awful, until I caved and gave him what he wanted which was to talk to him. He immediately changed tact and was conciliatory, saying that he had missed me (even though he had been messaging me to tell me I was a cunt about 30 minutes previously) and all that. So, I just told him to not try and contact me anymore - he became threatening and then when I cut through that and told him I wasn't scared of him, he went back to sort of grovelling. He kept repeating that he didn't understand why I thought this was a big deal, and I kept explaining why (that he was becoming abusive and I wasn't going to put up with it) and he dimissed it. So, he was out of my life.

The problem is that I started to recognise the same patterns in my partner, she would lash out, scream and hurl abuse, and then act like nothing had happened the next day, only to get extremely aggressive if I brought it up and tried to explain my perspective. Also, when I expressed unhappiness in our relationship, she took offense to it, mainly about her anxiety and PTSD, she would throw it back at me as if it was my fault. Her explanations were that I needed to not trigger her anxiety (that resulted in her screaming at me), while also not taking any responsibility for them. She went to a therapist for 3 sessions and then quit - she told me her therapist said that the fault of everything was our relationship, despite her having suffered from anxiety for as long as I have known her. I looked up stuff online about dealing with anxiety but it didn't seem to, according to her, apply to her. I asked that she link me relevant stuff, she sent me one webcomic and then nothing else.

We were going to go to couple's therapy but I came to a realisation that this just wasn't working, her anxiety just seemed to be smokescreen to leave me constantly backpeddling and never knowing exactly where I stood.

By no means was I saint, I would also have moments where I would get frustrated and lash out, or instigate arguments over stuff, sometimes petty stuff but I always felt like I was fairly quick to admit my fault. With her sometimes she would go two weeks without saying anything to me.

Anyway, it is over, after almost 9 years of a relationship and 4 years of marriage and there is a sense of liberation, and relief, with very little remorse.

I went on a Tinder date and had a laugh with someone - things are better. Hopefully they stay that way.

Share this post

Link to post

Share on other sites

Damn, twmac, that is a hefty decade you've been going through. So, if I understand this, it was through the experience with your friend that you suddenly saw how the relationship with your ex was unfolding? What a way to gain insight. Anyway, good for you. Seems like you've been wrestling with this, probably unhealthy, marriage for a while.

Share this post

Link to post

Share on other sites

Hey, yeah, sorry for this big old brain dump, it was midnight and I had had it rolling around in my head for a few days.

Thanks for the kind words Jenn, I am moving out in a month, we'll arrange a divorce and then she is more or less written out of my life at that point. Bangkok is a big city so we aren't likely to bump into each other very often. I've got friends here too so I am not any more isolated than I was previously.

And yeah Roderick - that is what I was saying. I am not sure that our relationship was like this all the time but the last 2 years have been really rough.

Share this post

Link to post

Share on other sites

Damn, that's really rough. I'm also in the "long term partner with anxiety/depression" boat, although things have been looking up lately. It got bad enough that she spent two months in hospital around this time last year, but in doing so was able to actually connect with a therapist who has been helping her and things have been getting better. I have definitely seen some of the things that you mentioned, but am also seeing her own them and work on them. To not have that latter part would be really bad. I'm sorry you went through that and glad you seem to be seeing the other side of it now. Credit to you for seeing the situation clearly and taking action.

Share this post

Link to post

Share on other sites

Damn, that's really rough. I'm also in the "long term partner with anxiety/depression" boat, although things have been looking up lately. It got bad enough that she spent two months in hospital around this time last year, but in doing so was able to actually connect with a therapist who has been helping her and things have been getting better. I have definitely seen some of the things that you mentioned, but am also seeing her own them and work on them. To not have that latter part would be really bad. I'm sorry you went through that and glad you seem to be seeing the other side of it now. Credit to you for seeing the situation clearly and taking action.

Yeah, there was no self-reflection after her dark periods. It was just like I was supposed to muster on and leave it in the past even though she would often say extremely hurtful things. By contrast if I said anything that upset her, she would wait months and then bring it up as a justification for her anger. For real, when we were in Japan at Christmas, after she had yelled at me in the middle of an airport because I asked a baggage handler to confirm something, and I was like 'hey, I was trying to help could you not shout at me?', she turned around and told me that on the 12th of May (7 months previously) while she was having an anxiety attack, I had told her over facebook that I didn't give a shit about her anxiety and she should stop talking to me about it. I was floored that I would say something so shitty, like she convinced me while I was drunk that I wrote that. So I started to apologise, I was just kind destroyed that I was that horrible to her.

The next day when I sobered up I went and checked facebook and I found the conversation: she was in the middle of getting angry about her boss for the third time that month, to which I always suggested she go talk to him and set up some boundaries and she always hand waved it away. But this time I didn't, I wrote 'This isn't about your boss, this happens all the time, it is you, I don't have anymore advice to give, maybe you should talk to a friend about this, or someone you respect the opinion of?'

It was a bad response borne of frustration of having the same conversation for 7 years about different bosses, at different jobs. But the extrapolation on her part felt out of proportion with what was said and she just didn't even mention how upset she was until 7 months later.

And then there was this time she came home super drunk, incoherent to the point she kept talking to me like I was an employee for the company that she worked at, I was laughing at first because it was genuinely funny, then she got aggressive and started screaming at me that she loved me, but also fucking hated me, as she got more angry and started saying things like 'You come into my house and disrespect me' (we shared an apartment with another person at the time) I decided to just go for a walk. When I came back she had dead bolted the door and was shouting at our bewildered landlady/housemate (who had been hiding in her room since the shouting started) and wouldn't let me back in. So, I had to walk to a Hostel at midnight and rent a dorm bed until she sobered up. The reason for her anger? A week before hand she had told me about this excellent customer service she gave where she had waived the delivery costs for them, and I said that it sounded like credit card fraud. She got angry with me for suggesting that. The day she got drunk was when she had found out that it had, in fact, been credit card fraud. So, it was my fault...?

These sorts of things should be warning signs, giant klaxon alerts, but this didn't happen over night and crept up very slowly, at first it was just silent treatment for days on end, punctuated by verbal fights when I got sick of being put in the penalty box, or I would say/do something and she would give me a look, and I'd know I was in trouble, we'd hash it out, and then she would do something very deliberate that felt like I was being punished, and then it just sort of became the new normal... Weird relationship.

Share this post

Link to post

Share on other sites

And then there was this time she came home super drunk, incoherent to the point she kept talking to me like I was an employee for the company that she worked at, I was laughing at first because it was genuinely funny, then she got aggressive and started screaming at me that she loved me, but also fucking hated me, as she got more angry and started saying things like 'You come into my house and disrespect me' (we shared an apartment with another person at the time) I decided to just go for a walk. When I came back she had dead bolted the door and was shouting at our bewildered landlady/housemate (who had been hiding in her room since the shouting started) and wouldn't let me back in. So, I had to walk to a Hostel at midnight and rent a dorm bed until she sobered up. The reason for her anger? A week before hand she had told me about this excellent customer service she gave where she had waived the delivery costs for them, and I said that it sounded like credit card fraud. She got angry with me for suggesting that. The day she got drunk was when she had found out that it had, in fact, been credit card fraud. So, it was my fault...?

These sorts of things should be warning signs, giant klaxon alerts, but this didn't happen over night and crept up very slowly, at first it was just silent treatment for days on end, punctuated by verbal fights when I got sick of being put in the penalty box, or I would say/do something and she would give me a look, and I'd know I was in trouble, we'd hash it out, and then she would do something very deliberate that felt like I was being punished, and then it just sort of became the new normal... Weird relationship.

All of that sounds really rough, and I'm glad you got to a place where you could notice the pattern of abuse and break out of it. It's not remotely comparable, but my last big relationship had a similar dynamic where something bad would happen with her, it'd have to be someone's fault lest it be hers, and I was usually on hand and involved enough in her life to be a good patsy. The immediate cause of our breakup was Trump getting elected, because she was furious at me that I didn't support Clinton enough, but the proximate cause was me telling her that she had deep issues with anger and trust that she needed to get help with. She also went to a therapist after our breakup (I guess because I actually got through to her that being so stressed and angry all the time wasn't normal) but that therapist also just enabled her issues and let her spend her sessions complaining about minor work gripes. We don't talk anymore, but I'd be surprised if she kept going after we stopped.

I think there's an dynamic in our culture that can lead women dealing with severe anxiety or anger issues to dump in their relationship in a way that can become abusive, and it's hard to maintain the relationship as a safe space for both partners to feel their feelings while also being like, "I'm not your punching bag for when life gets you down." It's good that you've found a way to move on and find some happiness for yourself, since it doesn't seem like it was in the cards for you to be happy with her.

Yeah, 2017 was a big pit of depression because of political and personal things, and 2018 has been a little better with the latter, at least. I have a job and a cat and I bought some new furniture that makes my apartment look less like a sad person lives there. I have also been trying my hand with Tinder since early spring, but haven't been really pleased with the results: four months of dating an incredibly neurotic lawyer who ghosted on me when I cancelled a date because of a migraine and... the second date that I'm going on tonight. I keep feeling like I'm having trouble with connecting with people, but part of that is probably me still healing from what was a six-month breakup with a multi-year fallout and part of that is Tinder being full of goose eggs (which, honestly, is some of the appeal, because there's less pressure).

Share this post

Link to post

Share on other sites

Glad to hear it's going better at least. I've only had one really big breakup but it messed me up for years, including an ill-advised period getting back together. I wonder what I'd have done if Tinder had existed back then. I've never really seen the appeal but I've also not been single during its lifespan. Some friends have used it to bounce back from relationships as well, so it seems to be good for that.