What I’d like to do in order to become a better developer

If this is the first time you’ve visited this blog, you might not know that I’m striving towards becoming a programmer of sorts. A web developer, software developer or any other kind of developer that daily sits around and “plays around” with code and gets paid for it. I’ve currently finished (except for math class) the first year of college, but since I won’t be able to pass the math class (because of the reality of my situation), I’m focusing on the other Higher Vocation Education(HVE) program I’ve been accepted to instead.

Aka, I’ve done perhaps 4 hours of math in 6 weeks, instead of 4 hours per day like it was planned, so thanks a bunch for nothing I say to who ever feels they need it. I Personally would’ve been a lot better off if I did not feel this pressure. You will learn why in this post. I’ve been too tired and I actually don’t feel like its useful either, so that’s why I haven’t done it. I’m just not able too, so good luck to me on my future and last 2 exams in this math class I promised to take. I’ll celebrate like crazy if I get more than 2 points on either test. Moving on!

In my current education, I’ve learned Java, with MySQL databases and JavaFX and with the new program I’ll learn .NET. Hopefully the core versions where I can continue using my  products instead of that sluggish Windows OS. Bootcamp, sucks because Windows sucks these days in my world. What a cluttered mess! But I’ll use it if the school will really require it, and I’ll hate it and probably complain about it a whole lot. That’s also the only downside to learning .NET, since it’s so windows focused, but I just want to do programming, so I’ll overcome my issues as long as I can code.

During this summer, since the news of me getting accepted to the .NET HVE program, I’ve started to learn as much as possible about this platform. As a n00b in programming languages and the worst debugger ever, I can say that there are a lot of differences between JavaFX and ASP.NET. The similarities are basically the MVC pattern, but otherwise, everything else is different. At least from what I know and have learned from my first year of college. For a start, I can’t find an easy drag and drop system for desktop applications on MacOS. What I mean by that is that everything in dotnet is made with code like css & html instead of placing buttons, fields and labels manually via drag & drop. With JavaFX there’s Scenebuilder, even though it’s buggy as hell. Also with ASP.NET web applications it’s possible to generate and create databases and tables from code, using SqlServer or Sqlite. From what I’ve learned, this is not possible with Java and MySQL. Aka generate a whole database from your model classes and a DB connection class file (DbContext file in .NET)

Let me know in the comments if this is possible. Also I’d like to know if there is a free software (or very, very cheap, like $5 – $10) online able for download where I can manually create relationships between tables (EER diagrams) like you can do with workbench etc. I need this for either SqlServer or Sqlite databases on a Mac. Preferably without using Visual Studio as well. I prefer Rider from Jetbrains…

I’ve mainly tried making ASP.NET web applications, taking one step forwards and two steps back at every turn, but it has made me see my own personal issues a whole lot more than I ever thought possible. First of all, I have zero patience on a bad day. On a good day – I have more than enough. And I have had a lot of them bad days this summer. You can learn why in my previous post. I practically never debug, and if I do, I need help on how to (and where to ) start. I google a lot, but it takes me sometimes weeks to find the right answer for my specific problem. I do not (generally) read books about programming, or other places on how everything works. What I’ve learned about programming, I’ve learned from testing a crap load of different code snippets until it finally works, without the use of git, or commits, so I have no idea on how many things I’ve tried to make that special problem work. Or why it didn’t work in the first place. I’ve also learned it from remembering lectures, or from working with the principles on school projects or tasks. I’ve also gotten loads of help from my class mates or teachers. For example I know the MVC pattern well, and how inheritance works etc (aka object-oriented programming and basic programming in Java), but remembering smaller things is harder since I do have those memory issues to deal with.

9 times out of 10, the solution to my problem is due to one line of code being wrong somewhere in all the classes or methods. This often causes an exception of sorts. Or I’m missing a semicolon, or something very simple. The other day I wen’t completely nuts trying to figure out why I couldn’t customize the Identity framework in ASP.NET core. I’ve been to do this a 100 times these past weeks or something. The problem was a NullReferenceException where I by mistake put INPUT.whatever in the InputModel on the Index.cshtml.cs file where it should’ve been user.whatever instead. The input.whatever is used for actual inputs, like forms, not when you’re trying to access an object. Then you use the object with instance variables and the like. My terminology sucks, so sorry about that. It said user in the tutorial, but I skipped that since that’s what I do (aka never read texts very thoroughly , even though I looked at that code a million times that day.

It wasn’t until about 10 hours later, that I finally calmed down enough that I figured it all out. I felt so frickin’ stupid afterwards. I really do need to get rid of my bad coding behaviors, because this is just really bad. For my mind, my health, my everything… I can’t be a good programmer with these horrible, horrible tendencies and practices. I have to do something about it, preferably long before I get my first real job in this field, or internship.

Since I tend to remove and re-start my projects when I’ve failed way too much instead of just doing everything in a better way, I get too frustrated that I just want to delete everything. But my mind can’t stop thinking about finding a solution to the problem, so when I re-start the project (often like 5 minutes later) with the previous code deleted and I found the solution to the latest problem, I basically have to start from the beginning with everything about 5 times a week, or perhaps more. I did this too when I learned Java, but not to the same extent, since I had tasks to follow and I actually did save all the code. Now it’s gone, since I did a spring cleanup on my computer to save space, when summer started and school was finished, so that was also a stupid mistake. But I do this with everything, deleting stuff thinking I’ll never need it, and then a few, minutes, weeks, months or years after I discover I really do need it and it’s gone and I can’t get it back. I regret so much… Never delete stuff, but don’t become a hoarder is the lesson to be learned here! Just keep your valuable stuff safe!

The good side with this awful behavior is that I’m learning a ton regarding how to make ASP.NET web applications and I have found that I actually do like it, regardless of the behavior I have when learning and doing this code-related thing. The bad stuff is the obvious stuff. I must get rid of it! It’s that my frustration and zero patience gets the best out of me. I’ve never been able to hide it, deal with it etc. It’s been a lifelong struggle and my (huge) anger management issues prevents me from seeing the solution, often staring me in the face in the code I’ve written. I can however control myself so I am not destroying things that are valuable, or hurting others, so it’s not that bad, but I hate what it’s doing to me. I hate this aspect of my life. I just want to get rid of it! It’s hurting me more than it hurts everybody else and I’m so sick of this. It’s sucking my will to live or something… I’ve had more than enough of this craziness. And I want to do something about it before it’s too late. But I don’t know what or even how.

Like I mentioned, the other day I was basically(but not really), pulling my hair out, scaring the cat and the whole neighborhood with my yelling and swearing out of frustrations, because a simple thing I’ve done too many times this past month or so all of a sudden didn’t work. No matter what I did – I could not make it work. It made me crazy mad. Still, instead of taking a break, doing something else for a few hours, my mind works in such a mysterious ways that I find it impossible to stop problem solving. I just have to solve every problem that occurs, or else I go mad. But I go mad in the process, since I basically never know the solution for my problem. Or it’s a catch 22 situation, damned if you do-damned if you don’t situation that prevents me from doing the right thing. It does not help that many tutorials I find online only takes the steps to make an app half-way, so it does not help with my current problem. Only how to make a project a gazillion times if you know what I mean…

With programming, it’s my horrible way to learn it that stands in the way of me getting better and becoming a great developer. I don’t read the books. I don’t watch that many YouTube videos that explains everything – unless I have to for a school task, I google forever and don’t understand what I’m finding out, I test using code snippets I find on stackoverflow instead of debugging (with breakpoints, have not learned unit testing yet), I rarely commit and basically never use git for my personal projects.

For school it’s a whole other thing… Oh, and also – I misunderstand basically everything, I don’t read it all carefully and I skip basically everything I don’t care about, and just go for a code snippet I think could work. I guess in that way I’m a slacker, but I’ve never in my life had the “push” or motivation I’ve needed in order to actually make something of myself. Until I made the decision that I want to become a developer, about 2.5 years ago (somewhere during the spring of 2017). That’s why it’s taken me way too long to become a developer in the first place. A normal version of me would’ve done this over 10 years ago. Also I find reading being very tedious, and I’ve never liked it. It mostly has to do with me not understanding what I read in most cases, or if its fictional, I have a hard time visioning what the books are explaining. The only time I like reading books is if I’ve seen the movie or tv show before, but I still do prefer the visual version of books anyway.

I’m ambitious, I’m driven, I learn and I love learning it. Remembering it is hard due to the fibromyalgia stuff, but still. I love to learn new stuff! I got an A in the latest class where me and 4 other guys in my class made a JavaFX app and I did that without effort. All of us felt it was way too easy to make, and I still feel that way. I do love a challenge, but it’s hard doing it on my own, in my “preferred” loneliness. Or perhaps forced loneliness. When I’m with class mates or getting help around people in general, it goes a lot better, and I do not get this pissed off or frustrated since help is always there. Regarding programming, nobody in my current class have said I’m not doing enough, they see how driven I am, and my ambitious side. They also understand what prevents me from doing more. Having fibromyalgia and being ~50 lbs overweight is certainly not good for my health.

Also having to commute for like 3 hours per day does not help either with my issues, so that would probably be better for me and my health that I don’t have to commute 125 miles per day by train. I can do it, but it also takes a toll on my health since all that traveling makes me tired. If I will change schools this fall to the HVE program, I’m gonna try and see if I can either walk or ride my bicycle to school instead of taking the bus, just to get the exercise in daily in order to help me lose the weight and regain my health. I might take my car some days as well when the weather is to crappy unless the parking is too expensive. Then I’d take the bus, but I’m not planning on getting a bus pass just yet.

I do blame myself in various ways – to a degree. Especially from what I’ve seen me doing since I started learning this new platform. I thought somehow that I’ve learned to calm myself down, let it go and do better after this last semester finished, but no. It’s probably gotten worse. What I personally blame it on is all this crap with the math class that’s been going on for 8 months or so now. You can read all about it in my Swedish blog, if you understand the language or get the gist of it in my previous post, I’ve linked before. I can feel it in my bones that the frustration I currently have, have nothing to do with the actual programming.

I mean, I know I’m missing something when I get stuck and out of extremely bad habits I start to swear like a pirate that never set foot on land, instead of just remaining calm. The things that have happened to me lately have affected me in the most negative way possible. I feel useless, I fear that I have no future, that I’ll never make something of myself, that I’ll never succeed, never will work in this field, have my future Great Dane, live in a house, lose the weight and never regain my health. Or have enough money in a steady income. All because of this stupid math crap, where I’ve actually for the first time in my life done my absolute best to pass and still failed. At least I feel that way. What others think of my performance has nothing to do with how I’m currently in this nightmare. It has broken me in ways others probably will never understand.

I know that I have to calm down, not get stirred up over the tiniest things, not lose my cool, read up on the issue, debug, ask for help, watch the videos and do whatever else I can to get myself back together or just stop when it’s been going on for too long. However, until everything of this bullshit stupid mess is resolved in a few weeks, I guess my bad days will only continue. And they probably will continue for the rest of my life since it’s been going on forever already.

I almost pray that the new HVE program will help me change my behavior regarding this. That in that program I’ll learn how to cope with my frustrations, how to code for real and not get lost every five minutes etc. I mean, if I can never stop this horrid actions of mine, I’ll never be the person I want to be – for real. I’ve struggled with this my whole life and I’ve never – ever had a chance to learn why this is, and how to do something about it. People say “calm down”. Yeah? How the hell do I do that when I can’t see straight, when my voice is so sore from yelling, and I want to do bad stuff to myself or others from all the frustrations I’m feeling (metaphorically speaking). Like I’ve mentioned before – I’d never do such a horrible thing. How the fudge do I calm down in those situations? I do not know, because I have yet to learn how. And I’m 37 years old.

The only thing I know about my anger issues is that they are a part of my family tree and they get worse due to my plethora of illnesses I have. I’m the only one in my (extended) family that suffers from so many issues. The others are a lot healthier than me and they were not born with fibromyalgia or those other issues I have. Several family members have the same problems with anger, but not as severe as me. The difference is that they know when it is time to let it go and do something else for a while. I do not. I keep going until I’m blue in the face and I huff and puff from the anger I’m feeling. And then I keep going. They also do not get totally pissed off from like the zipper on your jacket not working, or the water being too cold. Or something else that is super tiny that nobody should ever even worry about or think twice about. They get angry when they have to and keep their cool whenever else. I get angry about everything on a bad day and I hate it.

A few years ago, I thought that it had to do with my hormones since I calmed down a lot for a few months when I started taking a shot to prevent me getting my period, but that only lasted for so long, so it has nothing to do with my hormones. At least what I know from experience. From what I’ve learned lately, it has more to do with genetics and that my fibromyalgia and other issues just enhances this. Bad habits and a “slacker” lifestyle has also prevented me from doing something about it, if it’s even possible to handle my temper in any way.

If I could change only one thing about myself it would be to get rid of my anger management issues. If I could do that, I’d be the happiest person alive. And that’s a promise, no matter what happens.

So, what should you do in order to be a good programmer/developer? Well, read the books (and everything in them) that the teacher gives you/class demands/you have in your possession, watch good Youtube channels that explains everything, and follow every useful tutorial you see to a T. Debug with breakpoints, do unit tests, use git and commit as often as possible. Do not be afraid to ask for help. Do not delete your code! Keep it safe for future references. Try exercise, taking a walk or cuddling your pet if you have one, or say hi to your kids if that’s another choice when/if you feel a buildup of anger issues coming up. Etc. Etc…

No matter what you do when you’re developing stuff – just don’t do it like I do it, and you’ll probably become a better programmer either way. Medical problems or not – just do not do it like I do it.

Advertisements

It’s time to start thinking about that first summer job…

Since I started college in the fall of 2018, I’ve had a plan that I’d be looking for work after year one. First I’d like a summer job and if that goes well, I might be doing smaller jobs for that company later on and if not, I’ll be trying to do that for some other company instead. Then in year two I’ll continue to look for employment over the summer and hopefully get one (or just continue with the current company that’ll have me) and it goes on and on. However, during the fall of 2020 I have to have a part time job with a salary at least around $1400 before Swedish taxes, but preferably not more than 10 hours per week of labor. Or some other task that’ll get me some money to be used for rent and such until I’ve graduated in June 2021. One example would be to take care of a website and /or create an app for a company where I get a bigger sum of money that I can use to pay rent and other expenses until I graduate. After that I hope I’ve landed my dream job, if not already long before then but as of now, I think a lot about my future and where to go next.

In order for me to even get a job someday, I have to have a portfolio, preferably a website dedicated to my developer skills and some apps to show off to a future employer. During these few weeks, I’ve started to do just that, but before you’ll feel happy for me, let’s just say it all turned to shit before something good could come of it. I got a web hosting thing started again with the web host I used last time. I need a service like that both for blogging and for development, so access to databases and PhpMyAdmin etc is very useful. However, after tinkering a lot with some code locally on my computer – I noticed and got told that this would not work with my future and current java applications, due to many reasons. This sucks, but somehow I’m glad, because I still do remember why I stopped messing around with stupid web hosts and that shit. Still, somehow it is different now, since I’ve actually started to learn how to do this! Not to mention I’ve always wanted to learn this, so in a way it’s perfect for this since I’m a student now. It’s just shitty no matter what that this happened, but I am glad I got my money back from the web host.

To solve the database problem, I’ve started to play around with cloud services. That is so advanced that I have basically no idea what I’m doing, but I’ve tried following the instructions and no matter what I do, I can’t get my code in IntelliJ to work with an external database. It only works with a local one, which is fine, but I’m lazy and would love if I could have access to an external MySQL database so I could use that DB on whatever computer and/or network I’m on. It works to connect MySQL Workbench etc to the cloud, but the code get’s “access denied” messages or other errors… I think it’s due to me not using the right libraries but I have no idea on how I should do it either. We haven’t been taught this stuff in school yet… at least not how to use external databases.

Still, it is useless it seems and I am not sure that I should be spending my time on this. It might be too early for everything. Many of my classmates say that to find work within IT as a developer after your first college year would be a miracle if it was possible, so many of them will work with other jobs to get some money over the summer breaks. In my current situation, with me having the “ability” to not get a job anywhere else then within IT, I have to take my chances now. Also – I do not want to work with anything else than programming! I am not the best student in class, but I think I know enough to at least try. Also I’ve learned so much this semester, even though I’ve been by myself 90% of the time. I’m amazed at what I know today regarding Java, programming and OOP as well. I still suck at terminology though, due to my memory problems that are explained by my illness Fibromyalgia.

Also, I have a backup plan. If I do not get hired over the summer I shall spend it creating the game I’ve wanted to create for so long and hopefully that will be popular enough so I can make some money from that over the coming years. I do not believe it will be super popular, but I’m mainly gonna make that game for myself. If somebody else wants to play, great! Go buy it! It will be a lot cheaper than you think if I can release it to the public, and most likely not free… In my mind I’d rather pay $1 – $5 and be able to play my match-three games without loosing lives and having to wait or be bothered by ads or DLC stuff. If all goes as planned with that stuff, it will be released on iPad, Steam and perhaps Android and iOS devices with at least a 5.5″ screen. Size does matter for this game… At least in my mind it does. Don’t know about you…

So now you know what I’ve been up to. Let’s hope for the best, shall we? And also, do you have any recommendations on what to do with a portfolio website? I have a Swedish site for this already, but I want one in English as well, but WP on WP.com at least is not so useful for this and I do not want to spend more (or any money) if possible. $4 a month for my main Swedish blog is more than enough, thank you very much…