codingGinja https://codingginja.com Journey to Software Engineer title Tue, 02 Aug 2022 08:16:44 +0000 en-AU hourly 1 https://wordpress.org/?v=6.2.9 https://codingginja.com/wp-content/uploads/2021/05/[email protected] codingGinja https://codingginja.com 32 32 Quote generator – Female Voices https://codingginja.com/quote-generator-female-voices/ Tue, 02 Aug 2022 08:14:00 +0000 https://codingginja.com/?p=834 Read More »Quote generator – Female Voices]]> Quote generator is my first step at getting back into full on JavaScript study. I had been slightly derailed with my freelancing business, which meant I needed to learn way more things WordPress, which left me with little time on improving the skills that I actually needed more than any time before. But I finally normalised my routine, and decided to keep on going with my studies. Which after a lot of work with NodeJS came back to practicing JavaScript by doing 20 Projects, based on ZTM tutorial.

This project took me two days (with sick toddler in tow), and was 80% coded on my own by first of all listening what was expected/planned and then setting out to do everything on my own. I have no issues with HTML/CSS part because that’s pretty much my bread and butter even in the WordPress+Elementor platform. You can never have too much of customisation. So even though I don’t consider myself a pro at HTML/CSS, I feel at ease with starting a project, linking everything together, styling it to my liking while using SASS, and prepping the overall project for adding scripts. Also I created a GitHub repositories, as this is one of the others skills I have greatly improved during the past year, but I wanted to keep on practicing, and also follow my progress over upcoming days of coding. Maybe it will turn into 100 days of code started on the 1st of August.

I took extra time to study Fetch function as this is on of those functions always needed when it comes to APIs. Also, there are a couple of ways to produce the same result, so I took the time exploring them, and reminding myself of async and await. Overall, I felt really proud that even after the break I could explain to myself what was going on in the fetch function, and placing it all together with DOM, so I can produce the final result on page.

I ran in some issues when pushing the code to GitHub Pages, as they had a trailing slash, which interfered with the file routes but in the end I decided to update my links to the full github repository links before pushing it on GitHub, and reverting it back while working on the local version. It’s a bit of a pain but I only needed to do it a couple of times, as I was not bothering with it while doing multiple commits, just on the ones that actually determined if GitHub could see the full project completely.

One more thing to mention is that I was looking through different APIs for generating the quotes but most of them were paid. For a test product it’s not something I am willing to invest my money, as this will probably be covered in dust after a couple of months. So I used a free version recommended by FreeCodeCamp. Though in the end I wanted something more from my project, as I thought it would be cool to have only female quote authors produced, that’s what I based my design on too. I even looked into possibility of a filtering code just to get female named authors out, though in the end to make it quicker I uploaded the json file and removed all male authors from the file, also added some more female author quotes (as unfortunately only around fourth of those quotes came from female authors). But the final result was more than pleasing.

Overall it was a fun experience. More than anything it proved to me once again how much I enjoy working with JavaScript and creating these projects. I can’t wait for my next project.

In the meantime check out what I came up with and get some female voice inspiration for your daily life. Don’t forget to share it too.

Female Voice

]]>
AUSSIE CAMPS – responsive web application – Case Study https://codingginja.com/aussie-camps-responsive-web-application-case-study/ Fri, 26 Nov 2021 00:44:16 +0000 https://codingginja.com/?p=780 Read More »AUSSIE CAMPS – responsive web application – Case Study]]> I started Aussie Camps as my learning tool based on Colt Steele’s Yelp Camp training. Except that I wanted to make my app a little more local. I must point out that this web app was built following Colt Steele’s Web Development Bootcamp training and full credit goes to him. I did add my own stylings and some functionalities that I preferred but this was an app that came out of the training session and I don’t claim it as my own achievement. And yet I invested hours in learning, implementing and understanding what was going on while I was building the app. In no way I feel capable of repeating that process without any help but I must point out that even the teacher used google on multiple occasions and I feel 100% confident in that skill because even though I was following the tutorial, some things were already outdated which meant that I needed to source my own information of why some things weren’t working as they were based on the training sessions.  

How I built Aussie Camps web application with NodeJs

I will confess, I started this training part just after learning JavaScript and also I knew nothing what NodeJs stood for. But now I feel that I am capable of at least attempting to create another very simple website using the same process. Sure, having experience with PHP and building websites on WordPress helped but it is a full process that I never had to go through even when I was building WordPress themes.

I started by applying some information that would create an impression of a fully working app. For that I applied Seed helpers which involved 500 local Australian cities (which I sourced from simplemaps website). To create multiple locations I used Math.random() as well as words representing Australian nature and aboriginal culture to add random names to places. It was done so that it would look like a real app while I was in production mode building it. I also found some Australian camp photos on Unsplash and used them for the project.

For Camp names I used another file with again Math.random() putting together random words to help them best represent Australian nature and culture. For first word I used words like: Tidda, Euroka, Koala, Kangaroo, Brumby, Bunji, Forest, Silent, Eucalyptus; and for the second one words like: Estuary, Village, River, Mangrove, Red Sands, Outdoors, Billabong. I must confess there were some very funny and cute examples that came out of it. Like Kookaburra Hunting Camp or Nuddy Swamps. But I digress, this part is no longer visible to the public anyways.

What this web application does?

It’s a very basic web app. Main idea is that it represents campgrounds so anyone can register as a user and add New Campgrounds as well as review and rate them. Only those who created a campground can edit of delete it, the same goes for reviews, only its author can delete it. It also includes a map (using Mapbox) both in the main Campgrounds page and individual pages. Photos can be uploaded and they are stored in Cloudinary.

I used many tools to get a finished product and I got stuck too many times. But as it is a Yelp Camp example, it has plenty information to go looking for. My version is far from perfect. I won’t go doing the whole set of steps there are just too many of them and Colt is way better at teaching them in his course. I highly recommend it for any beginner. He has a way of explaining things and it’s very easy to listen to him. I highly recommend getting the course if you want to become a Web Developer because it is a great starting point. In no way it’s final because just like Colt points out many times, talking about each part that he sometimes only touches lightly could be a separate course. But his course is a great place to get an overview and know which parts gets you most excited.

Front-End vs Back-End. Full-Stack?

I am still not sure about NodeJS. I know for one that watching tutorials about HTML, CSS, Bootstrap weren’t too exciting and I felt like I couldn’t’ understand half of it until I actually went out and did my own projects. That’s when the true powers of training and ability to find your own information and solve problems shows up. I believe that those are the best skills to have if you want to be a developer. If you have no patience for research or scrolling sometimes through pages and pages before you find something a little bit similar to what you wanted to do and then construct it into final result, if you don’t enjoy that, you will find yourself in trouble.

The same goes for the Back-End stuff. The more I think over it, go back and read deeper into the documentation, the more I find that I don’t know enough and yet I really want to know and to understand better. Because that is why I started this journey. I wanted to know what is there deep under the hood of things that we see daily now.

All I know is that I loved learning JavaScript from the start and I am excited for going deeper into it as my next step after finishing Colt’s course.

He won’t read this blog post but I thank him for those 63 hours we spent together and he didn’t even know it. I am being cheeky now but those who listened to his humour will get it.

I built Aussie Camps using amazing tools listed below:

Amazing tools and my childish explanations of why we used them: 

NodeJS – runtime instalation to help run my application in the back end.

NPM – great library of packages.

MongoDB Atlas – to store web app.

Cloudinary – to store images that users upload on via the web application file input.

Mapbox – to show maps that return locations based on the information on the web app source. 

Heroku – to deploy the app and be reachable online as well as editing the code locally and pushing changes back to Heroku. 

NPM packages & Installations: 

  • node – build scalable network applications; event loop as a runtime construct. Enters the even loop after executing the input script and exits when there are no more callbacks to perform. 
  • nodemon – automatically restarted node when I was making changes and saving them. 
  • mongoDB – for local database. 
  • connect-mongo – well to connect mongo database.
  • express – fast framework for node. 
  • mongoose – object modelling tool designed to work in an asynchronous environment. Mongoose supports both promises and callbacks.
  • ejs-mate – helps use ejs and connect templates inside app.
  • express-session – used for cookies, to not save session data in the cookie but rather in the server-side
  • connect-flash – a specific place to determine the messages we are going to flash for users, like “Welcome” after they login or “You must login” when they are going to pages that are signed in users only.
  • method-override – helps the client use PUT and DELETE over the usual POST and similar.
  • passport – authentication middleware
  • passport-local – authenticates users using username and password.
  • joi – validation schema, helps require parts of forms based on preset requirements.
  • multer – middleware for uploading files
  • cloudinary – cloud service that helps with uploading images.
  • multer-storage-cloudinary – multer support for uploading photos to cloudinary
  • express-mongo-sanitize – to sanitise website from possible MongoDB injections of HTML code. 
  • sanitize-html – used it to secure website from HTML being added to inputs and other possible scenarios and prevent from hacking, breaking the website.
  • helmet – helps secure Express app by setting various HTTP headers.

This is the list of packages used. I would definitely need to read through documentation to use them again. Some are easier for me than others. But I wanted this blog post to be as much as a brain dump of things I have learned as a reminder when I need to get back to this stuff.

Just a little reminder of how to push it to Heroku through terminal after making my changes:

git status

git add .

git commit -m “add start script”

git push heroku master

heroku restart

What’s next?

Next for me is slowly getting my head out there to see if anyone is looking for Junior Web Developers eager to absorb more and implement more and do sooo soo much more. All the while I am going to deepen my JavaScript knowledge because I loved coding with it and I feel there is just so much I don’t know yet and I want to know. I still haven’t decided on my next project but I should start looking for a framework soon too (probably React) and hopefully then I will decided if I am going to go with the usual Tasks App or being myself will think of something different and less attempted by others. You can check out my other projects on my Portfolio page.

Anyways. I hope you enjoyed this look through the tools and Yelp Camp review. Once again, I thank Colt for such an amazing opportunity to learn. I hope I will be a student you are proud off.

Now, check out my web app, which I left on Heroku domain on purpose. It’s a reminder how much I still need to learn. Go on and try creating a user and uploading campgrounds and reviews. Don’t need to use the real stuff (though be sure that if you use images, they are free to share), it’s suitable only for playing around as it is now and probably will stay there for a very short while.

Thank you for reading.

]]>
7 things I learned while optimising a website https://codingginja.com/7-things-i-learned-while-optimising-a-website/ https://codingginja.com/7-things-i-learned-while-optimising-a-website/#comments Tue, 19 Oct 2021 05:22:20 +0000 https://codingginja.com/?p=725 Read More »7 things I learned while optimising a website]]> Optimising a website for user experience can be a nightmare!

Trust me, I just went through one. I’d say that I was a newbie, and I didn’t know what I was doing, but I kind of did. I prepared all my files optimised for fast online delivery, I tried my best to keep it all nice and minimal and yet, Elementor still bloated it all to the max. Then add an unreliable hosting (I was saving at the time and I am not too quick to let go, also they would say that it isn’t their issues too). And then add all the weird stuff that internet and browsers do and here went my fully custom, artistically made LuAru Studio website to a jarring stop. Doesn’t it hurt when someone just doesn’t get it? Well, this happened with me and PageSpeed Insight, it just couldn’t see past it.

But that’s ok, I am not quick to give up, so in went hours with little sleep and kids who saw mum stuck to the computer. But I figured it out. Well, kind of…

Here I will give you a the detailed list of what happened.

I wanted a vector art based website so I created something I was very proud of, put it all together in the AdobeXD to have it all in front of me when developing the actual website. I was considering a couple of options – going with one of pro themes, using Elementor (and Hello theme), using Gutenberg or hand coding it all. For this one I chose Elementor and bought Pro, because I knew it will give me some features that will make my life so much easier. 

Well, I wish I knew then what I know now… All those things come at the price. And in my case, it didn’t save me any time. I would have hand coded it three times by now… I am not saying any of that is Elementor’s fault. I knew they had a bloated code, but I thought I will make it work for me. And well… I didn’t, I bloated it so bad that DOM size is still one of the performance issues. But it isn’t the worst. 

So, here I am ready to launch my website which looks just the way I wanted it to look. I press the button to delete the COMING SOON page and the first thing I do of course is check the speed (I should have checked how my website looks on multiple browsers first). And it’s scaringly terrible. I panic. What is going on? I have never seen such a bad result! 29 on mobile, F on GTMetrix!

And that was the start of a week invested in moving parts around with multiple caching options, even though I had nothing to optimise on my website – it was already optimised to the fullest – SVG graphics and all to make it good looking in any size, my few images as small as possible. All those things that are worst when it comes to performance were working fine. But PageSpeed Insights and GTMetrix said “nahah…” 

Well, ok then… I can do something about it! And I did. Here is what I have learned when trying to increase my speed:

1. Choose a good hosting provider

No, really, if you want your website to perform, choose the best you can afford, not just a cheap option, but something with people who at least try to understand your issue, not just says “Oh, you poor thing, it must feel so bad… Too bad it’s not our issue…” Of course, one of the first things I did was contact Hostinger, my hosting provider, because one of the issues of website’s speed was long hosting server response time. Well, I can say I was very nice with them, they were very nice with me but obviously they thought I was stupid.

I went through 5 or 6 people because they changed with every response I gave them. They all repeated the same thing and I had to repeat them back the same things they could have read in the messages before. Of course, they said it’s not their servers’ fault (“but if you upgrade, it might be better” …sure not server’s fault my a**…). Then they promised that it will improve if only I buy Clouflare for their cPanel. Well, I already had Cloudflare nameservers set up, but they said it’s an extra and better thing for speed. I was doubtful but I tried. Once I bought it and tried to set it up the message popped up “You already have Cloudflare, we can’t set it up”. Now I was angry for wasting my time, and for their cheeky ways to get money from people, but I was still nice with them, because I am a nice person even when I am angry. I did ask for a refund though. I also understood that they are not going to help me, they weren’t even trying, just copy pasting generic answers… Oh well, I tried. Lithuanian company and all, close to heart… What a let down! 

2. Not all caching plugins are equal

Invest time in a good research before you actually download and activate any of cache plugins. Because if you try them all on the same website they tend to leave code behind. I already wasted hours with hosting provider and my website didn’t get any better. So, I tried 4 different caching plugins and I am pretty sure I broke my site because of that. In the end I didn’t even have energy to start looking under the hood, and see which code got stuck where, because I couldn’t properly use Elementor anymore (not that it was perfect before). And it got worse when WP Rocket was added to the mix. But my speed improved. Little by little it went up to 80 on mobile and 99 on desktop. And GT Metrix gave me an A (I had to save that one!). But it wasn’t over yet (as you will see in point no 6)!

3. Over optimising a website with caching can break it.

I achieved what I wanted but I completely broke my website because whenever I tried to fix even a tiny little thing, something else would break. As if it was a table full of tiny balls, I try to push one a little and all the others start bouncing down. I have been pushing and pulling with not much results for some time but then I gave up. It seemed that it will never look the way I intended it. Turning off all the plugins except for Elementor didn’t help. Well, nothing I tried helped. I was afraid to even do anything else because I thought it will break completely if I push it any more. I was considering to scrap it all and start over with hand coding and get my money back for Elementor Pro and WP Rocket while I am at it. I think I got older by 10 years doing it all. And I consider myself a good designer and developer but sometimes tools just don’t want to work. Check back to point 6 to know what I ended up doing.

4. Check, if the site looks ok on multiple browsers!

This is a major one! Sure, it’s the rule I always knew but there is the addition, do it straight after (and before) launching and before doing anything else! This is one of the major issues that caused that table of balls to keep on shifting. I didn’t check my multiple browsers before focusing on the speed. I started caching and preloading before my website was looking the way I wanted it to look on multiple browsers (and I didn’t know that at the time). And when I found that Firefox wasn’t displaying the SVGS properly I thought it had anything to do with speed (why I thought that? Who knows, I was tired). I was trying to fix it the wrong way, getting deeper into the woods. When the graphics didn’t change, I realised that the issue is somewhere else. Finally! And as I tried to debug what was happening in the console, I found that some of my SVGS had extra lines of code that messed everything up. I don’t know why it was like that, something with Illustrator’s export maybe?

Soon I got to slowly deleting those lines of code, checking each one on the browser and deleting it from the file with VSCode. There was an easier way, but I was just so proud of myself that I figured that one out all on my own, that I didn’t think to check, and because I found nothing even remotely close to what was happening to my website on a friendly google. But you can find my detailed explanation of what was happening in this blog post.

5. Some plugins just don’t want to be friends.

Because of the way I cached and preloaded my code, something weird started happening both with Elementor and WordPress overall (you know that table of balls I mentioned before). Whenever I would change anything, it would just revert back to how it was before. So when I tried to replace my edited SVGS they wouldn’t change or they would but something else would break. Like my testimonials section or my recent blog post section (probably something was happening with JavaScript). But then if I tried to change those, my SVGS would go back to the old code (and I already deleted the old images which meant that there was a blank gap with the title instead of a beautiful flower).

Oh boy

I thought I will go crazy over this. Nothing stayed the way that I wanted and every time I checked the design on multiple browsers (cache cleared and purged, DNS flushed, browser’s history deleted, everything multiple times refreshed, WIFI router restarted, you name it, I did it), they all looked different from each other and from my intentions. At the point where everything looked kind of ok, I gave up. The only next step would be to scrap it all and start over again with hand coding. And I was done with Elementor too. It’s just not worth it. I was supposed to save time, and I even paid money but it just didn’t do it. I knew it was buggy, I have experienced this multiple times before, but I managed. This time it blew my roof of. Optimising a website might break it entirely.

6. Back up, back up, always back up.

Ok, I knew this one and I am so happy that I always do backups of my websites before major changes, because this time I had to actually use it. After trying everything just to put those “table balls” back in order and looking them fall apart once again, I gave up. This wasn’t working! So, I did the best thing I could think of and went to the last backup version, just before I started all the optimising. Then I fixed all the SVG and other issues all the while flushing the cache, because my browser kept on returning WordPress to the previous screen and scaring me out of my wits for a moment. But then after purging everything it would look the way I wanted it.

Now, of course my website speed went back to where it was. Yet, I wasn’t ready to upload WP Rocket and I still wasn’t sure that I will, because it broke my site before. I activated Elementor Experiments and that helped a little (you can read this enlightening and very helpful blog post about it here). I also upgraded my hosting plan to cloud based, I figured I will try that before dumping them entirely and it helped a little (but only sometimes, which tells me that their servers are unstable). In the end after working out with LiteSpeed Cache I deleted it because I wanted to try WP Rocket again. And I did, very VERY carefully.

It did nothing good.

So I got rid of it again and refunded while I still could. It is a very user-friendly Plugin and I am really sorry it did no good for my site.

Now my speed isn’t perfect but I am ok with it. I tried a few other things when I got back to LiteSpeed but it turned my site ugly and so I decided that I would rather have it a little slower but looking good. I might just get back to this issue sometime in the future when my hosting plan ends, and I will need to change it to something else. 

7. Extra point about Elementor.

If you are trying to work and Elementor is not responding or is very slow, try a different browser. I am a weird sadomasochistic developer who likes Safari, but for development I had to move to Chrome. Elementor was responding way faster through it. Don’t ask me why, ask Elementor Developers, maybe they know?

In the end, I came to a very simple conclusion:

Completely custom design = hand-coding (like I did with Christy Mu)

Templated design = themes and theme builders (like I did here with codingGinja)

Also, I am sure there are way smarter people around who could explain all the things that I did wrong. I know most of them by now thank you very much. But I also know that SVGS don’t get the full credit out there so not many people really do what I did, hence I had to learn from my own mistakes. It’s good that most of the website designs that I do involve photos and I recommend using photos with people in them, because that’s the best marketing tool out there – we tend to find connection better when we see other people doing stuff we want to do. It’s just that this time I wanted my website to be original. So here I go – it’s so original that there aren’t good enough tools to meet me in the middle for my vision. It’s good that I am a website designer, and I can start all over again any time I feel like it and even go a completely different direction.

Life is all about testing everything anyways, isn’t it?

Let me know what you think of my silly ride and the lessons learned. I hope you can learn something new too or at least laugh at me a little.

P.S. One more thing

A question that I keep on asking myself – is there anywhere on the web someone who is actually doing the hosting research, or everyone is basing their top lists on the affiliate price they get? Seriously, I couldn’t find any proper advice out there. It’s always pointing a finger at others and saying they know better… That’s why I am offering to get Bambaram hosting for $8 dollars a month, it’s the best!!! I’m joking, there is no hosting like that (as far as I checked, but I did want to say Bambam hosting and I found their website…ups…), I do feel cheeted just like you did right now – every time I think that I found a reliable blogger telling me which hosting would work they are actually selling me their own affiliate link. There is so much information out there that in the end I would save more time by just closing my eyes and pointing my finger at the list and that would be the best hosting ever… really… research in this affiliated world is hard, and it seems like there is no true winner out there. Let me know if you found yours.


DISCLAIMER: everything I have written here is my own experience and opinion. I don’t advertise nor badmouth any of the names mentioned. It’s just what I went through trying to optimise my website, it’s your right to have your own opinion about any of the aforementioned brands.

]]>
https://codingginja.com/7-things-i-learned-while-optimising-a-website/feed/ 1
Vector art, SVG code and all the things I have learned using them for website design https://codingginja.com/vector-art-svg-code-and-using-them-for-website-design/ https://codingginja.com/vector-art-svg-code-and-using-them-for-website-design/#comments Tue, 19 Oct 2021 04:22:57 +0000 https://codingginja.com/?p=713 Read More »Vector art, SVG code and all the things I have learned using them for website design]]> Vector art graphics aka digital design in my idea is a form of art and SVG code is underused in the website design. Photography will always be more relatable to us, but vector art is great for attention grabbing web design. What’s more it might be an image for us but for the computer it’s a code which means we get a better output at any size of the screen. Though keep in mind like any code it can be a little fussy and one more thing to know – different browsers and different software see the same picture differently, just like us human beings look at art very individually. 

Distorted SVG image

I gave a lot of love to my own vector art based website at LuAru Studio. So, imagine my surprise when I created those lovely vector graphics for my website, uploaded them and rejoiced in the way they came out only to find that some browsers, in particular Firefox didn’t see my art my way. Well, more particularly like you can see in the image, it was distorted in weird ways. 

Firefox is a developer’s friend

At first, I thought that there must be some issue with WordPress (I was already having other things going on at the same time), and so I was searching for the answer in the wrong spot. Then I tried googling the issue but whenever there was “SVG”, there was always a word “icon” next to it and that just didn’t represent my issues at all. I couldn’t find what was wrong with my image. Now as I said I was a little stressed out already because of the web speed performance problems, so I didn’t have time to sit back and think what the real issue might be. Also, the images were fine in Illustrator and on Chrome, Safari, even IE. So, I thought it must be Firefox’s problem. But in reality, Firefox was the only one who didn’t compliment me just for the sake of it, it actually like a real friend pointed out what wasn’t working.

Just a side note, I heard from a lot of developers that Firefox’s debugging tool is one of the best, sometimes even better than Chrome.

How to debug an SVG image

Now that I had no idea what was wrong, all I could think of was to check inside of the image, so, I opened the image in a separate window and got a debugging tool, SVG is a pure code after all. And I was quick to find that when I inspect those distorted elements, they come up into specific path tags. I quickly opened my VSCode and looked if my original.svg file also had that path on. Once I found the exact match, I went back to the browser and selected “Delete Node” with the right click. In an instant the distortion was gone. Imagine my relief there and then.

How to debug and fix svg distortion with svg code

I repeated the process with all the protruding lines at the same time deleting them from the original file on my computer. And my image was fine once again.

I should point out that I haven’t thought of opening the original.svg on the computer right that moment. If I had, I would have found that once in Illustrator original.svg actually shows those distortions that then can be deleted manually. But if you don’t have access to the visual editing software, fixing the code in your editor also works. 

It’s a tedious work but I have no explanation why that distortion happened in the first place. The original.ai – illustrator file that I created the vector in didn’t have those distortions they only happened once the file was exported as SVG. But it must have been something in the illustrator that didn’t connect correctly. It’s also so weird that only Firefox picked that up. 

My idea with this post is to show you all the different ways SVG can be edited and how helpful it is when you can use debugging tools on a graphic image and see on the spot what isn’t working.

I am happy to say that images were fixed, all that I was left to do now was to optimise the rest of the website. It was coming up with bugs since installing a caching plugin. You can read more about the process in this post here.

I hope you learned something valuable here. Let me know if you are having similar issues, maybe I can help you with my own expertise, or just check out my portfolio designs to see more of what I do.  

DISCLAIMER: everything I have written here is my own experience and opinion. I don’t advertise nor badmouth any of the names mentioned. It’s just what I went through trying to optimise my website, it’s your right to have your own opinion about any of the aforementioned brands.

]]>
https://codingginja.com/vector-art-svg-code-and-using-them-for-website-design/feed/ 1
Consumed a coding course, what now? https://codingginja.com/consumed-a-coding-course-what-now/ Sat, 10 Jul 2021 20:31:53 +0000 https://codingginja.com/?p=612 Read More »Consumed a coding course, what now?]]> What to do after you consumed a coding course

The answer would be a very simple one for me. Watch another one on the same topic. I use Udemy and it’s great for finding multiple cheap choices (when they are on sale, which is almost always) on the same topic (there is a world of choice for coding). But I have found that sometimes when trainers are teaching they like to introduce new things and say “We will talk about it later” and for someone who hears this information for the first time it just doesn’t stick to the brain, and when the moment comes and the trainer says “As mentioned before, I will be talking about B…” for you there is no connection to make because you don’t know when they mentioned it and what should you connect it to. Going back and looking all up feels tedious and unnecessary as it might be hours of content, so you happily trot on leaving a bit of a gap in the information. You kind of understand what it was about but can’t confidently place it together with any other information it was mentioned up until this point and believe that you will be fine. Sounds familiar?

I have watched enough content to know the feeling. Now the idea of taking the same topic and watching it all over again but from other trainer’s perspectives feels over the top but hear me out. 

For one, each teacher has their own style of teaching and sometimes they place importance on different things than the teacher you watched just before. So regardless if it’s the same topic, you might still learn things that the other course missed, even better if the course has been updated recently and that way includes more recent information. But the most important thing is the feeling you will get when you watch the same material; that dreaded emotion of being completely green at something has dissipated. Suddenly you remember so many things from the previous course and those things that intimidated you feel harmless now. More than anything, you start to notice things that you have missed before. You are not wasting your time, you are not overusing your brain RAM, you are repeating the information and updating it with the things that got lost on the way. Suddenly you start connecting the dots with the things that you already know from the advanced part of the course to the basics of it all. Seriously I can’t recommend it enough. You can always skip the parts that you know well enough and jump to the things that need some work. But even in the basics section, you will find things that other teachers didn’t mention, or they will work with different resources. From my perspective, this is the way to become a better-rounded developer

Don’t feel that you need to know and understand everything after completing just one course. There is so much new information every second that it’s unreasonable to expect us to know it all after watching 20 hours of content. I know the idea of watching another 20 hours of a similar thing feels counterintuitive and most people tell you to start applying that information as soon as possible and I agree, but what if you finished the course and you feel like you don’t even know what to apply?

My Advice is this:

  1. First of all, if you are only starting out, take the course in parts. Take for example Web Development courses; they are planned in a similar manner. We start with HTML, then CSS, then probably some Bootstrap or connected information, then JavaScript, and so on. My advice is to take each section and learn as much as you can before moving to the next (I know there are teachers who urge us to hurry through HTML & CSS, but I feel that if you didn’t understand how they work, what good JavaScript will do?).  
  2. To really understand a topic, go through several resources, don’t rely on one course, teacher, or book. Programming languages like JavaScript are changing so fast that some courses might sound outdated even if their information on Udemy says that they are being constantly updated. 
  3. Don’t let yourself get down if you feel like you consumed a coding course and you just don’t get it. Take a break, do something else and try again with another resource. 
  4. I promise you, trying to learn something deeply is not the same as so feared tutorial hell that everyone calls us out about. Going through material and switching to another resource if you didn’t quite understand the topic is for your own good. Don’t let anyone tell you otherwise.
  5. I know the feeling of wanting to do it quickly, but taking the slow, deep approach while learning to code is a wiser option. It’s better to be slow and intentional now than on the job.
  6. Don’t listen to those who say that it is easy. Sure, it might be for some – like those who have partners that are already in the field, or who have been dabbling in code as teenagers, before you listen to others saying how easy coding is, know what their background is. It is a hard skill to learn, and people who are saying how easy it is don’t make us feel better about ourselves. Take these kinds of things with a grain of reality – we all are very different, and one person might take a week to understand some concepts, but there are those who might take years. And that’s ok if you are making a progress however slow.   

If you are hearing your teacher say “We will talk about it later”, know that you can always re-watch the same material at the end of the course or pick another teacher to cement the information. I am here to give you full permission (sometimes we need someone to say this stuff)  to find your best resources and take it slow because you are free to choose and only you can know what works for you best.

Sending encouragement and a reminder – repetition is a mother of learning.


]]>
Learning hack that might help you land a job https://codingginja.com/learning-hack-that-might-help-you-land-a-job/ Sat, 03 Jul 2021 20:46:05 +0000 https://codingginja.com/?p=585 Read More »Learning hack that might help you land a job]]> A learning hack that might help

I don’t know about you but at my age and after two babies I don’t have the most prime state of memory. But the brain is amazing, it adapts to all the changes that we throw at it through life. By adapts, I mean we can find ways that work for us best. It’s good that no one else knows us better than we do ourselves (well, maybe just except our parents). And we must use this knowledge to our benefit when learning. I won’t go into detail about all the learning styles, the internet is full of examples, but I am going to underline this very idea, that we need to know our learning style to learn best. Though it’s never as simple as that because I might be more of a visual type of person but if the content I am seeing doesn’t have much of the background information, what good would my learning style be? Choosing a good source of information is one of the most important things you can do for yourself, but it’s getting harder every day to do it because the internet is full of choices, so full that even getting to choose one takes time. We are used to seeing rankings of top universities of the world, but who is doing the global rankings of all those online courses out there? If there is no easy way to compare, how do we know what will work for us? That’s a good AI project to work on, global rankings of online courses to help newbies choose the best learning path; maybe you will do it? It would certainly help, as there seems to be a race going on to provide as many choices as possible, drowning us in tutorial hell all the while telling us not to go there. Everyone seems to have created a better course than their neighbour next door. And it’s good, choices are good unless all you do is try and choose the best one. 

I am sorry, I can’t tell you how to do that. The only way is to choose one and go with it, but I also believe that you don’t have to stick with something that doesn’t work till the end, especially if the content is hard to understand or outdated, or painfully boring. Because you will waste time and think that something is wrong with you when in reality that particular course is just not right for your learning style. So learn to ditch something without conscience if it’s not working. But not because you think there is your perfect course somewhere out there waiting for you (yeah, I am talking about commitment issues too). But it isn’t like a relationship, your learning material won’t get angry if you supplement your learning with other courses. What I mean by that; if you didn’t get a particular topic, I advise you to go and research it deeper, don’t leave it until the end of the course, or the book, do it at that point of time and go deep. I found that if you don’t do research, more stuff will add on top of that empty space later as they will be connected to the concept that you have not understood properly. It happened to me and the worst part I didn’t know when that point of bewilderment was, so I went back to relearn, meanwhile losing time.

But I have nice advice for you that somehow happened to me naturally. While doing all the courses and reading books and whenever I would get a snippet of Javascript to figure out, I would later put it in a single file that I called Practice_Javascript.js. Once I am done with it, and after making sure that I understand what it does, I would comment it out. I have my FizzBuzz code there, I have my Fibonacci generator, and many more. What works for me now is that I go back, take one snippet, and try to memorize it. I know it sounds bad, who does that? But it helps me understand what is happening better (way better than at the time of seeing it in the course or in the book). I try to look at it and replicate it a couple of times and what I realized is that not only it sticks better to my brain, but I also found some ways to make it better; something I couldn’t have noticed earlier. It feels amazing because it allows me to see the progress I have made and motivates me to keep going. This is a growth journey and by looking back, I am able to see that things did change, I haven’t stayed the same. I also heard that some of these codes end up in job Interview tests (haven’t tried that yet), so it’s good to know some of them by heart. But there is nothing better than the feeling of looking at them now, knowing that these were a mumble jumble a month ago, but today they make total sense. 

I don’t propose to rely on memory alone, you need to understand JavaScript and what each line of code does, otherwise, there is no help on Stack Overflow. But I found trying to understand by memorizing some of the code is another kind of learning. Going through the motions, following a teacher only helped me collect some code, and mostly at the time of listening everything makes sense but trying to do something else with the same code later doesn’t work, it means that it needs more time to sink in. And that’s ok. Being self-taught helps because there are no classmates to compare yourself to and you think you are pretty good and that’s a nice feeling to have. Being down doesn’t open new synapses. 

Keep on working, memorize if you need to, understanding will come with experimenting, failing, and debugging. Also, stop long enough to allow yourself space to think back and connect the dots. Learning is not a race and rushing through material won’t get us anywhere faster, if anything, it will hold us back when we need to find a solution and there are no teacher’s hints to help but too many dots left behind us to connect. I believe that any programming language (especially your first) must be understood deeply, and any amount of time spent on learning it will return a higher value. And there is no such thing as being slow at learning, just a different style of storing and understanding the material, and we all are different. Be proud of yourself for doing it, don’t spend time comparing and criticizing your ways.  

I say, let’s get some more learning and failing going on. 


]]>
My first online event and what I learned from it https://codingginja.com/my-first-online-event-and-what-i-learned-from-it/ Wed, 30 Jun 2021 23:38:38 +0000 https://codingginja.com/?p=568 Read More »My first online event and what I learned from it]]> My first online event

Last week I was part of Code Like a Girl zoom call and gee it was hard. Not because of anyone else, they all were so lovely, but because even though I love tech, being on the camera and listening to someone far away, and also trying to be part of the conversation when you are muted… All those things were so much that I had a headache afterward, a very bad one, though probably it was also because I was smiling all those two hours of the conversation. I didn’t get to say much, my mind was blank from all the excitement and of those couple years of talking baby language (or on the other hand just painfully listening about all the things Minecraft) and there were 80 participants with limited time, also my Zoom didn’t work as expected and I couldn’t choose a breakout room, too bad, but that’s fine. 

What have I learned?

  • Nothing new about CLG that I haven’t already read on a beautifully made CLG website, except that wonderful people work there, with exceptional, selfless intentions. 
  • Heard a lot of different journeys and also had a few doubts about my own along the way (as you do, because who knows if whatever we do is actually what we are supposed to be doing).
  • That there is a group of people I can talk to about the books that I like, things that are close to my heart, similar intentions and similar roadblocks along the way.
  • And most importantly, I want more of it. But even more of live conversations. Funny that I say that because most of my life I was introverted and changed because I had to change to move forward from some hard stuff while growing up. But I do miss conversations with other interested, successful, determined high achievers. 

And so in saying that I bought a ticket to another, this time live event for Women in Digital. Sure, it is a way broader topic event “Life By Design: Creating a career for you & your lifestyle”. I might be jumping over my own belly button here, but I just need to get out there even if for a couple of hours, meet other people, and to know that we are not on the Matrix, and we are still living breathing organisms on this planet. 

I am really putting myself out there lately. Talk about stepping out of the comfort zone. I don’t even have anything to wear except for my lounge wear. 

Oh, boy…

So, what do we do when we know that we need other people to succeed? 

We find courage in our hearts to trust the process. And mind you, all those other people are probably going through the similar things in their heads – wondering if I look ok, if that mess behind my back is visible, is my accent too obvious or if what I am saying makes sense, because it does in my head but once it’s out in the air somehow it sounds a lot like mumble jumble. Also, those moments of a few people talking at the same time and awkward moments of silence following, or even worse “you go first, no you go first”. I know there are some very experienced Zoomers out there now but for me it’s a completely new world, not that I don’t know how to operate the software but the social impact of that is on such a new level for our chimpanzee brains that I bet after this pandemic we will have a lot of new kind of research about how static communication affects our overall wellbeing. 

I miss meeting new people in a more personal, body language (not I will smile all the time in case someone was looking at me right this moment) kind of way. I hope to form friendships too because being Lithuanian [insert your own nationality] in Australia [insert any other country that you immigrated to] and fighting for the right to stay, does put a strain on creating meaningful relationships. In saying that I do have wonderful friends that I love dearly, and I am forever grateful for the things that they did to make our life in a foreign country feel like home (I am just happy I am not so introverted anymore).  

Thank you to companies like CLG and WiD for creating opportunities for people like me who are just starting out, or are stuck in the rut, to get out and meet other wonderful people. Can’t wait for more, and I will keep this blog updated after the even too. 


]]>
How this project found me and why I can’t resist it https://codingginja.com/how-this-project-found-me-and-why-i-cant-resist-it/ Sun, 27 Jun 2021 20:07:40 +0000 https://codingginja.com/?p=526 Read More »How this project found me and why I can’t resist it]]>

This project found me and I just have to share it.

The other day I was surfing the net, as one does, tidying up hundreds of tabs (I am pathological with those) and came upon one old tab that I left open as a resource to study Javascript. I had it opened on Chrome* when a message popped up informing me that they know I know Lithuanian and would I be willing to contribute to translating this page into Lithuanian.

And first of all, WOW. I know they are watching but it’s still weird when a random page you visit is interacting directly. But that’s how it is now, ha?

Secondly, I have this belief that we are constantly being given opportunities to do something with our lives, but we also must ask if this new opportunity aligns with our main goal.

So, of course, I decided to check it out and investigated the project. The translation to the Lithuanian project has 167 tasks on GitHub, and only 4 out of them are done (and those 4 I must say are done offhandedly). So ok… I instantly (if I waited I probably would have found some weird excuse not to do it) wrote to the creator of the repository to ask if there still is a need for translation. I got an answer next day that he could make me a maintainer if I want to proceed with it (the project was dropped 2 years ago), so now I had to think if this aligns with what I am seeking?

Project - translate JavaScript tutorial to Lithuanian

I am a person who likes to think through things and when it is hard to come up with a decision I use the advantages/disadvantages kind of list, I usually feel quite soon which side I want to try and find more points. Here is how it went for me with this project.

Why I should do it:

  1. It will help me understand JavaScript better, because hey, English is not my mother tongue and I do sometimes struggle with some concepts; translating them directly might help me root the information further.
  2. I will have a project to contribute to whenever I have time, and it will show on my GitHub profile, which will showcase my determination to any future employer. Sure, it’s not purely coding but it is contributing.
  3. Translating educational text to Lithuanian might help someone back in my home country to learn JavaScript. Sure, Lithuanians are good at learning languages and most young people know English, but not everyone, and if even one person (except for me) would benefit from this information, I would be happy that it helped.

 

And because there is a dark side to everything, I have to ask why I shouldn’t do it:

  1. It will require a lot of time and translation is not exactly the best way to learn something, because mostly you concentrate on translating not memorizing, or actually understanding (that’s why there are so many bad translations out there because it becomes automatic after a while).
  2. It will be slowing down my progress of learning, and if I don’t finish it before getting a job, it might take even longer to finish it. Though, maybe if I do talk about it on my social media, I will find more contributors and the project will be done sooner?

 

What am I kidding, I am excited about this opportunity! I could find a lot of reasons why I shouldn’t do it, but I know I will always counterattack it because I should at least try. Though the problem with me is that I don’t usually just try, I think hard before I start something and once I do, I have to finish it. That’s why I sometimes don’t even start on some of my ideas (mind you I didn’t think hard when I started this blog, I just created it all in a couple of hours and I am happy I did).

Even if you are a beginner you can contribute to projects

I hope you have learned a couple of things from my post.

  • One is – always read what those pop-up banners are saying. I am actually joking, I don’t ever do that, I have a trained banner blindness, I don’t know why I looked this time, but I am glad I did.
  • There are projects even for beginners that you can contribute to, so don’t wait until you feel completely ready. I don’t feel ready, but I am willing to step over my discomfort. Here are a few open-source for beginners links I have personally saved to work on in a near future:
  • Contact other people, you never know what might come out of it. Networking is the best way to move forward in any career change. And trust me I know how hard it is, especially after two years of being stuck at home with a baby (pandemic has nothing to do with it).
  • And finally, check if the opportunity that comes knocking is right for you. Not all of them are.

I have learned the hard way that sometimes opportunities test your willingness to stay on course and tries to seduce you with some easy way out. And there are no easy ways out. But it is as simple as asking, will this get me where I want to be or diverts me further away? An example could be a job offer in your old career when you are trying to learn something new and change your ways. If there is a financial need, it is ok for a short while if you still leave space and time to learn and implement the change, but it does complicate the journey.

And I am not even talking about those magical passive income tutorials on YouTube. They all sound so easy and fun. And then you find yourself watching hours of content for all the ways you could have all that money rolling in while you sleep… but all the while only the people who do the talking actually got that money and you just wasted your perfect time to study. Every single opportunity requires some kind of sacrifice/investment – be it your time, your money, your attention, your knowledge. It’s never passive, it might sound like that because that person has been doing it for years, but for whoever is just starting out…

Well, I could keep on going but this isn’t a blog about that.

This is a blog to inspire and study together with me. I can’t promise we won’t fail but I can promise we will definitely learn if we keep on going. 

So, am I complicating my own journey or opening new doors for myself?

Time will show.

* I use Safari, Chrome, and Firefox – all for different things:

  • I like the convenience of Safari and several perks that it has between Mac and iPhone, but it is limited when it comes to other things.
  • I use Chrome for my coding studies and most stuff tech.
  • And I use Firefox for webpages that require a lot of RAM, somehow Firefox can suffer the longest through multiple tabs (I like opening consecutively at least twenty new pages of houses on the realestate.com.au page, Safari always crashes, Chrome isn’t a cookie with this either). I hope one day I will have a better explanation as to why it is like that.
]]>
I just don’t understand JavaScript https://codingginja.com/i-just-dont-understand-javascript/ Sat, 26 Jun 2021 20:18:55 +0000 https://codingginja.com/?p=510 Read More »I just don’t understand JavaScript]]>
I just don't understand JavaScript

That’s right, that’s how I feel – I just don’t understand JavaScript, and I am in a serious block this week – these past two weeks truth be told…

I just keep hoping that after the next chapter in the book or another section in the course I will finally get it, but I just feel like I am burying myself deeper and deeper and I don’t know when the moment was that I lost it.

I don’t even know what exactly is that I don’t understand. I keep on looking for answers and there seems to be a moment where I get it but then when I try to code, it just doesn’t work. I am so discouraged that I am looking for ways to get out of this uncomfortable situation. Well, my reptilian brain is working hard to escape the resistance, as if it threatens my survival.

But I’d be damned if I give up without a fight! If I give up at all.

Sure, I don’t get it… YET. I probably need more time than my 16-year-old self would have needed to solve it but that doesn’t mean the power isn’t there anymore, I’m just slower. And I am sorry, but I just must use this excuse – I do have a seven-year-old and a one-year-old to take care of 24/7. I am lucky that my husband helps me as much as he can, but this household is just not running on air and dreams. Also, the little one and me (just a tiny bit) were sick last week. So, I must remind myself that in this – grind till you are dead culture – I still want to live to enjoy the fruits of my labor.

So to say, I might be whining a lot lately, but I am sure as hell not giving up on myself. Even though it feels like there is no hope of getting to the other side. Is there even that other side to get to? Does anyone truly know how to operate this thing?

Yes, I am still talking about JavaScript. It sure got to my soul.

What am I doing to get over it?

Sitting down every day to read and try to understand. There is no better/magical way.

I might need to memorize particular terms and certain code just to understand it better. And experiment on my own learning patterns to see what works best, but hey, I’m 36 and there are still things to learn about myself.

I also read through posts of others going through the same thing and that reminds me that I am not special, I am not the only one to feel this way. Some might have it easier, but others have it even harder, we are all different, hardship is no excuse to quit.

I got very philosophical about it, and it only confirms to me that this kind of resistance is a good sign – showing me that I am on the right path, on the road that in my case is less travelled and that’s why it’s right for me.

Hoping to see you on the other side soon as I have all the right tools, all I need is to focus and persevere.

Also, it is entirely possible that I already know more than I realise and, gun to my head, I could do a few things on JavaScript. Just saying… Impostor syndrome is a b*tch.

If you want to learn more about memory and learning, you can start with a few things like this book Joshua Foer “Moonwalking with Einstein” or Andrei Negoei’s course on Udemy: “Learning to Learn”. I probably should rewatch it again myself.

This post contains affiliate links.

Disclosure. To support this website, some links that I share on this website have affiliate marketing attached to them. I only choose to represent products that I use myself and trust their brand, I don’t receive any free products. The opinions I share are purely my own and in no way affected by the brands I choose to showcase. The cost of the product on the links are not affected by this link, I only receive small commission if you use it and buy the products. Thank you for your support.

]]>
Why I decided to start this blog and why it’s in WordPress https://codingginja.com/why-i-decided-to-start-this-blog-and-why-its-in-wordpress/ Sat, 19 Jun 2021 22:40:33 +0000 https://codingginja.com/?p=437 Read More »Why I decided to start this blog and why it’s in WordPress]]>
Why I chose to publish my blog on WordPress

Why I decided to start writing this blog

When I was just starting to learn JavaScript (I already knew HTML and CSS from earlier), I spent a lot of time reading around. It’s so easy to get lost in the maze of blogposts all of them interlinked in a non-stop ‘click here’ web. Have you ever played that Wikipedia game where you have to find the fastest route from one page to another? It’s amazing how much information it’s out there. I once read that (and that was at least 10 years ago) that the person today reads more information on Times per weekend than the person in 17th century per one year. It’s amazing that we can still think for ourselves.

So it’s no wonder that I have to be thankful for this blog post (that I also ended up in via another medium.com post) for starting my own blog. The title alone gave me the permission I needed but didn’t realize I did: “Why you should NOT code your own blog when starting out blogging”.

I have to admit, before this blog post that was exactly what I was thinking. I will learn the basics and I will code the blog about my learning journey myself. But there was the main fault in this thinking. I would miss out on the big chunk of my journey if I start in the middle. Sure, I could have gone back and thought what it felt like starting out but it wouldn’t be the same as doing it while it is so fresh.

I do feel a little shame that this website is not my own code and I use WordPress, Neve theme, and Elementor for it, but you know what. I’d rather record and share it now than postpone it until probably never because it might be too late to start then.

Why I chose WordPress?

I knew WordPress from my previous Web Design experience where I did a few projects for other people while freelancing and I liked the ease of working with it (whenever I was stuck with something I always found answers with a quick search on google). When you add Elementor to it, it’s just a piece of cake. I still think that my next step after tackling Javascript should be to learn PHP because a lot of the time I just want to understand what’s going on under the hood of WordPress.

But it is a journey.

I encourage anyone to start with an already working platform instead of being perfectionistic and looking for that right moment when we feel ready to code our own fully working website. I probably could do a lot of that now myself but I prefer to use tools that are ready now and in the meantime concentrate on learning more advanced skills. Also, I have a few ideas down the line where I will actually code my own blogs but for different things.

You might think that my advice is counterintuitive to the fact that the world feels overcrowded with information, and yet I believe that each of our voices is important and has a right to be heard. Why not use all these readily available tools and opportunities to share with like-minded people and maybe even help someone on the way just like Tuomo’s post helped me.

Share your voice. 

]]>