Hello World! (sick of seeing that one yet?)
I have always shown interest in coding, and creating things online, but since my college semester started this year I dove in head first.
TL;DR I'm taking C#, Python, SQL, creating websites with CSS, HTML, and JavaScript. I was testing Coding Editors, ended up with so many of them, can't work them all. Everyone said Python is SUpeR eAsY. I DON'T LIKE IT, I DON'T UNDERSTAND IT. I CAN DO IT, AND CREATE SCRIPTS. I JUST DON'TTTTTT GET IT. I can't figure out which text editor I want to use, I'm all over the place, frustrated, angry at the world. Need dev and webdev friends, or just acquaintances. **HELPPPPP
- What text editor do you use? Which would you recommend and why?
- Are you a Website Developer? What projects would you recommend for a new portfolio from scratch? *If you were freelancing for clients, would you use code or would you use a website builder to create it?
- Want a new friend? I need new friends with similar interests in Tech in general.
- You will NOT learn anything by just reading information on programming. You have to DO projects to grasp it. So why are there not more FREE walkthroughs for projects?
- Python is NOT the easiest language, I picked up intermediate C# well before I knew how to write a beginner Python code on my own. Don't listen to the people that say Python is the easiest coding language. They are lying.
So I'd like to start out by saying, journaling, documenting, and recording has always been a way for me to destress, and process things. Normally I would create a bullet journal entry from scratch, but since I spend 18 out of 24 hours this seemed to be a more realistic approach.
I started tinkering with coding 2 years ago. I would create a customized page, automation, or random calculator here and there. I would be fascinated by creating a website, designing a website, data analytics, python, c#, and before you know it I had over 50+ abandoned repositories on my github. I would start with full intention of self-teaching ONE thing then end up so overwhelmed with so many chrome tabs open they were no longer all in my viewport. Does this happen to anyone else? (Any suggestions on a way to organize my chaotic tabs)
I made the decision I was fed up working in the Food/Beverage - Customer Service industry and wanted to do something I really enjoyed. I figured a lot of it out on my own, taught myself some really cool things, but wanted to go back to school to earn a degree. So I did just that. I started out as a Business Management major, but ended up settling in Computer Programming, Coding Technology, Data Analytics, and minoring and Business Management.
I just finished up my last lab in my Responsive Web Design class and decided I needed to write to destress. That is what led me here. This post is probably more scatter brained than I am. I wanted to pursue a job working as a Virtual Assistant. When I was researching the process I realized really quickly that 90% of the information online is someone posting on their blog, trying to sell you their course, teaching you the same thing that the next person is selling. It is a beat around the bush type structure and it really doesn't prepare you to work in the VA field AT ALL. Around the same time I started my certification for my Responsive Web Design class I'm required to take for school. I was really happy about that, because *I had already taught myself HTML, CSS, and knew some JavaScript so it was an easy credit for me. Taking that course really reminded me how much I loved WebDev.
I was looking online at UpWork and other freelance pages, and the things people are selling in the WebDev, Content Creation, Design categories are all things I taught myself to do years ago. So that made me think MARI what the heck are you doing??? You could be doing that, why aren't you? Well, I don't have a portfolio. So okay, make a portfolio then? Well I have so many different projects I think would be cool to put, I can't start on one. I start designing one, end up making another, then another, then another and before you know it, I'm online posting to dev.to instead of creating a portfolio.
Honestly I'm not sure why I posted this, but I really wanted to keep the documentation for myself, as well as if anyone happens upon it, decides to read and wants to offer advice, a laugh, or whatever then amazing. I would love that.
Top comments (19)
Well Mari - I think all code editors have annoying quirks, but my goto editors are a JetBrains one (so WebStorm or IntelliJ usually) - because the intellisense is better than any of the others by a country mile, VS Code is my second choice.
I've been doing this job for 30+ years and I've always got a bunch of google searches open - but I have always found that when I'm trying to get a whole new concept I'm usually better off with a book - because good books have a flow and develop a series of principles. They might miss exactly the mark you are looking for, but for that then you can Google once you get the idea. I also keep a stack of books next to the bath lol, so I can grab "The Art Of Game Design" or "Game Programming Gems 8" and skip through seeking to gain inspiration about a problem someone else has solved.
The fundamental truth is that it is very easy to start a project and a bloody nightmare to finish it. You've got to choose an idea that is "good enough" and just complete it, it will be mind bendingly awful in the middle when you'd just love to do anything else, but you have to bash the buttons and yank your hair until it's done.
Make a list at the start of a project as to what it should do, do at least that or have a good explanation to yourself about why a goal changed. Don't tinker with a project forever, finish it. I started off writing games because its self contained (I still write games for fun), but you need something you have some passion for.
Good luck! It is worth it, promise...
Thank you! That is very helpful advice. I started coding when I was really young to run bots on my Runescape account way back when. I didn't realize it was coding back then though.
I think my biggest issue is that I am really harsh on myself. So finding a starting point for me is hard, and then I always end up abandoning ship because I think it isn't good enough, or I could start something else that would be better.
I love coding anything in really any of the languages I've learned so far, except python. It's just meh to me, I don't totally hate it but I do not like it either. This semester I took a course on responsive web development and I really fell in love with every aspect of it. That is why I have been aiming for full stack webdev. Unfortunately my college doesn't offer any program just in webdev so I am working towards the closest thing possible and self teaching the rest. Hopefully it works out. Thanks for taking the time to comment. :)
I see your point, I'm also a bit of a perfectionist, I try to black box things (which is a good DRY principle anyhow) and then stop fiddling early, but wait until there's a "whole" to improve. Python's not my favourite either, I can and do code in around 5 languages at the moment and have made money coding in many more, Python isn't up there for me, but it's better than Objective C lol. It's a bit like driving cars though, when you drive your 2nd car it's totally not like your first, when you drive your 100th they are pretty much all the same (but where the hell did BMW hide that bonnet release?) You need a language that you know well enough to get into "flow" with to start, if you are after the web development side, then TypeScript is closish to C# in syntax and Javascript is a lot better than it used to be, but easy to abuse.
I'm 100% self taught, but then, back when I could have qualified, I'd have been learning COBOL... Not for me, I started as a game programmer :) Today a lot of these courses are really great.
Feel free to reach out if I can help in any way. Your story resonated for me, but we are at opposite ends of a path. I envy the road ahead of you, it's hard but it's rewarding.
I thought I was insane when I started my summer semester and realized I had signed up to take 4 different languages all at the same time. One of them being HTML, CSS, and JavaScript all in one (even though HTML and CSS aren't technically languages, and JavaScript is a scripting language, I don't know if that would be considered a language exactly. I'm not too sure about that.) Either way that was still 7 different things I had to learn to write, but I managed to pass them all with 96-100A so I'm happy about that.
I laughed SO hard at your comparison of coding to cars. It could not be anymore TRUE! That is probably the best comparison I have ever heard and don't be mad if I use it from now on. Everyone always says don't learn TypeScript, learn JavaScript, JS is so much better, TypeScript sucks. However, I've been dabbling with them both just to see which one makes more sense to me, or which one I like better and honestly I think I prefer TypeScript. JS is okay, I don't mind it, but I actually enjoy writing TS. I'm not sure what everyone has against it. I know a lot of people hate C# because it isn't logical to them, but if you go into learning another language trying to make it logical you're never going to get it. No new language with different syntax than what you're used to is going to make logical sense to you. I think people just need to go into it to learn something new and if they can make logical sense out of it then cool, but don't try to make it logical, just learn it and then it will make sense. I didn't describe that very well, but hopefully you'll get what I mean by that.
I'm glad my story was able to resonate with someone, makes me feel a lot let alone in my crazy journey. There are some really amazing courses, and I have been jumping around in a lot of them. I try and keep my scope open, and not limit myself to only one way of doing things. That might be why I get so overwhelmed because I'm trying to do too many things, but it keeps things interesting for me, and I thrive in chaos. Keep my options limitless haha. The road I am on is very hard so far, but it has already been very rewarding and I can't wait to see where it leads me! Stay in touch.
With TypeScript - learn it that way, from the beginning. My frustration with TypeScript is that I know the data structure or pattern I want, and I know how to do it in Javascript right now, but I've got to struggle to find the right way of expressing the types and I end up with a ton of code when a little would have done. That's just because of my route, TS is much easier to reason with and forces you to build good structures etc - I just don't think in those structures I think in the underlying JS elements. I wish TS had been there for me as I moved my focus from C# to JS, but it wasn't.
That is what I have been hearing. I have decided to focus mainly on TypeScript, but for the few small things I already know and need quickly I've just used JavaScript. I don't know TypeScript well enough yet to implement it more than just in basic beginner code lol.
If you know C#, why bother learning Python? You don't have to use Python. C# has lots of good resources. You can learn ASP.NET, in any flavor, and do a project with it. You can then apply to companies which use C# :)
Using C# has the additional benefit of: a) You only need Visual Studio, so no need to worry about what editor you have to use b) You don't need to learn about UNIX and the terminal c) It has lots of great documentation by Microsoft, and you can always ask at StackOverflow or some other place.
Don't worry too much about abandoning projects. That's normal, worry if you don't learn something new while you are doing your projects. Also try to do small projects first, then grow into bigger projects. Sticking to a particular stack is useful too. You can learn through depth, rather than breadth.
Unfortunately python and python 2 are required for my degree. Thank you for all the helpful tips. I really appreciate them! I don't know why I didn't think of that, instead of overwhelming myself and my brain turning to mush. I always mean to browse on StackOverflow but I am the world's worst about opening a tab, seeing a link and OOOOOOOOOOOOOO SHINYYYY, open link in new tab, open link in new tab, open link in new tab and NEVER end up reading a single one of them.
Right now I am trying to figure out a banner to redo my linkedin page and even that is overwhelming me right now. Tsk Tsk.
Haha it happens. Old stuff is boring, new stuff is fun. It's great to explore new things, just not so much if it makes you anxious or stressed. In that case it's better to just take your time and focus on one thing at a time. More than reading books, tutorials or courses, I recommend just doing projects. Writing code. Get stuck, get help, unstuck, and repeat. I'm sure the courses on your degree will help you :)
Cheers, and don't give up!
I couldn't agree more. Projects are honestly the way to go. I could read about it all day everyday and I really don't think it would click until I put that information to use. I have actually been working on the SAME project all day without trashing it. So progress.
Hi. I'll give you my opinion, and like everyone's it is only worth what you get from it.
Right, first. Software development, for most people, is a job of research and problem solving. You don't need to learn the best way to sort data, but you do need to be aware that there is a choice to be made and know how to find it (Google search mainly). It almost doesn't matter what language you learn. However, some choices will kickstart your career faster than others.
I'll talk about what you are currently listing.
Python: This is favored by IT admins, devops engineers and data scientists. Most people do find it easier to learn. It is handy for building scripts to run on some compute instance (machine, VM, whatever). And there are a lot of data science snippets out there in Python, so that will boostrap you there. In my opinion, that is where Python stops. There are better choices for building services (apis, graphql, etc..) and general applications.
One of those is C#. Learning C# will open a lot of enterprise doors. Azure is taking marketshare from AWS. Here is the thing though, C# (and .NET specifically) is going to take you down a math of monolithic architecture. You really need to stick to sources of information that focus on serverless, microservices, event-based, and similar tracks. There is nothing wrong with monolithic architecture at a smaller scale - but if you want to make the "big bucks" you will learn how to build and deploy microservices on Azure.
Javascript. Here, stop using JS - immediately move to Typescript. Since you have some exposure to C#, it won't be hard it all. The same architect who created C# created Typescript - so there are some similarities. Typescript just makes the whole ecosystem a better experience.
Speaking of Typescript, couple that with NodeJS and you have a great tech for microservices/serverless. NodeJS is not as fast as C#, GoLang, etc..., but it handles event streams (say http requests) and async operations really well. The speed of development, plus a common language from front-end to back-end with the possibility of code-sharing is a good trade-off for the loss in requests per second. Deploying to cloud architecture that is serverless, then it matters even less as you can horizontally scale up as needed anyway.
Out of all these three, I'd tell anyone to go with Typescript/NodeJS/Web app framework (probably React/Gatsby these days) to learn something new. This is not because it is the best. There will be plenty of people who will tell you GoLang, Java, Rust, Swift, etc... but the key here is that you can focus on learning one language syntax. Learn how the logic of coding works. Learn how to do the research and combine what exists with your own special sauce. You will also experience both front end and back end work, allowing you to find a preference. Or better, be a solid full-stack developer. And, there just is no shortage of jobs with this stack.
I know this is too much, but here are some more thoughts. Learn SQL, but do NOT become a slave to it. Pick the right database for the job. And, pick cloud databases that are fully managed. Learn some of the NoSQL databases out there. MongoDB is crazy popular, so that's a good one. Learning Elasticsearch can be really handy too, as it is used a lot in enterprise. Bonus, grab ArangoDB and learn how graphs work too.
You also need to really understand event-based data flow. Or asynchronous data. Pub/Sub, Kafka, etc... Quite frankly, in our modern day environment - I'd say that you should just consider all your data eventually consistent (meaning, don't expect anything to be synchronous anymore). Understanding how to deal with data that will arrive to you at random times, random order or even duplicated is super important.
I know it sounds like a lot. All this really is tied all together and it's just a matter of picking lessons or building platforms that follow these principals. Don't go follow a tutorial that leads you down building a stateful monolith. While there is likely something great to learn, you might as well grab the tutorial on building a microservice platform with a SPA front-end.
And, build everything to deploy on a cloud provider. My personal favorite is Google Cloud. I think Firestore is a great NoSQL - less functional than MonogDB, but way more than AWS DynamoDB - and it is very fast and highly scaleable while being priced pretty darn well. Azure is my second choice. Microsoft is doing a lot of things correct these days. Since you have taken up C#, it's a good fit on Azure too. AWS is never bad to learn, but like the rest of Amazon it has just about everything - just some of it is complete crap while other parts are great. Most people will agree that AWS takes 10x longer to setup than GCP or Azure.
IDE: Jetbrains or VSCode. Thought with C#, you might like the full Visual Studio.
Last. Build something. Don't make it big, keep it achievable in like a week or so. I do not believe that any school, tutorial, blog post, etc... will ever really teach you until you actually use that knowledge in your own project. Not a project from a tutorial either - yours.
Well, my lunch break is up and this is an insanely inappropriate length of response. I hope you find your fulfilling path :)
I appreciate you taking the time to comment so much useful information! Seems to me like our brains work very similarly. I had to learn Python for a mandatory class. I can write scripts, and passed my course with a 100 but I didn't understand it really. When I started writing C# the first week I was completely lost. After I finished my 3rd or 4th simple project it just clicked.
I have been learning bits and pieces of JavaScript, but I looked into TypeScript and honestly it makes so much more sense to me. I take SQL starting in August, but I already started fooling around with it. My mom's work has all of their client information in a SQL database and she had no idea how to do anything with it and she is the director. LOL Can you imagine how badly that would have turned out? So I sat down one day and just figured it out so I could show her the basics of at least adding and accessing information.
My problem with all of these bootcamps and even with my college classes is that they don't teach you there are a million and one ways you can achieve the same end result. Teachers and people selling courses don't tell you there is a world of options. They want you to learn their way, and only their way. They try and put blinders on you, and they also don't tell you anything about how it actually works. For example, when I had to write python scripts I was learning it in an interactive browser, so I only know how to execute it from pressing the play button from my course. They don't tell you how you actually apply any of it. That was my biggest issue when I tried learning to code before.
I can write all this code, but what the hell do I do with it after it's written??? I'm still trying to fully grasp how to connect all this information I have together, but there is less information on how to connect things together. They only want to show you how to connect things in THEIR WAY.
I couldn't agree with you more about not really understanding what you learn until you apply it to your own projects. That is why I really love my C# teacher. We have an interactive browser we learn the concept in first then she sends us to Visual Studio to create our own projects. She will give us a general idea, then have us write a code that applies to the general idea. I'm glad I have her for all of my classes except one next semester she's awesome. My Python teacher I didn't speak to once all semester. He didn't even write anything in our modules. They paid for a course on Cengage and it walks you through it. Learned how to follow directions. I thought maybe once I took the class Id actually like python more, nope. I hate it more. LOL.
Thanks again for taking the time to help a noobie out. Stay in touch! I need to find a mentor xD if you're ever not busy and feel like helping out I'm around!
Sorry for crazy typos too. I was throwing this together on my phone :)
If I would start over learning programing, I would love someone to tell me to use a Unix system (Ubuntu or Mint), to learn basic Terminal/Shell commands and to master basic windows/browser/vscode shortcuts, browser dev tools, get familiarized with package managers (apt, npm).
Learning docker also helped a lot (dont have to go through the trouble of installing lots of stuff and break very often my OS, use prebuild techs).
Most people would love a CMS for their site, so if you like Javascript, the easiest I've found to set up a api/cms/db service is using KeystoneJS (favorite project I've found). That would take your front to the next level
Modern Javascript frameworks workflow would be harsh to get sometimes (Angular/React/), I would take a look at Vue and Svelt.
Good luck!
Amazing tips! I'm still confused about how to work the Terminal, and Shell commands. I honestly don't think I'm even using github properly LOL! When you start coding, nobody really teaches you that side of things, they just expect you to already know how that part of it works. I didn't know how to execute my python script until recently, unless I was in my interactive online class because it had a built in terminal. So I was writing python scripts and didn't even know how to use them. Such a shame. Thank you so much for the front tips as well. If you're ever bored and feel like chatting and sharing some secrets let me know!
It's wonderful to read about your willingness to learn.
As others have already said, you can only learn programming by doing it. No amount of reading or studying can give you what two hours of debugging fighting that nasty bug in your code will give you.
Long time ago I thought Programming in a private school (it was based on Turbo Pascal and dbII for those who remember them). My first words where: "You can learn how to program but nobody, myself included, can teach you how to program. My role is to help you learning explaining you how it works and guiding you through your errors but you have to work hard and make those errors yourselves".
At that time there was no Internet and very few good books. Now you can find all the learning material, the support and the suggestions you need to move forward. Just ask (showing the right attitude as you did in your post) and you'll find tons of people willing to help you.
My suggestion? just what other have mentioned: find something you want to create and learn by trying to developing it. It could be a website, a library, whatever. You may stop midway and ending with some more abandoned Git repository but you will have learned a lot in the process.
And all the better if you could find someone more experienced in the field you're interested in that could guide you overcoming the hurdles.
I LOVE those first words!!! I really do not think that there is anything MORE true when it comes to programming.
My two college professors are totally opposite of each other. My Python teacher I didn't speak to once the whole time I was enrolled in his class, but my C#, Responsive Web Design, and Information Technology teacher was SUPER engaged, and would remind us over and over again to do EVERY little project that was in the lesson even if it wasn't for a grade. She swore there was no other way to learn, and that is so true. I'm glad I sat down and just did them. I remember a couple weeks ago I had to write a C# code for a graded assignment and I thought it was perfect, would be no problems, then I hit run...... Boy was I wrong. I pulled my hair out for DAYS just looking over and over and over this code until I finally got so aggravated with it I sent it to my teacher to look over to help guide me. Well after I emailed it to her I ended up figuring it out before she was able to respond so I wrote her again and said "NEVERMIND I FINALLY FIGURED IT OUT!!!!! YAYAYAYAYAYAY. NO MORE HAIR PULLING." The only thing she said back was "Welcome to programming!"
I have been wanting to find a mentor to just talk back and forth with so I can pick their brain, and ask questions I still can't find the answers to. I just feel like some of the things I should already know, because the information is there I just don't fully grasp it. I love learning so picking the brains of people that are more knowledgeable than I am, especially when it is on topics that I am really interested in is probably my favorite thing to do.
Thank you so much for taking the time to comment, it means so much. :)
Proud of your journey and your dedication to learning and continuous improvement. The world needs more people like you. Coding can be boring if you treat it as a job. Treat it as a means to solve problems. Tech and software are always innovating on ways to do things more efficiently. This makes it exciting. I have been coding for 20+ years and still enjoy it.
Do check out Devopedia. We don't try to sell stuff. Just sharing useful info for developers.
Thank you so much! I really believe that knowledge is power, and if used and applied to everyday life there is no way to not succeed. Coding would be awful if you just treated it as a job. Coding is so much more than that. The possibilities are endless and I find that fascinating. My favorite thing to do is access and absorb as much information as I can. I could never have a career somewhere that I could learn everything about it, if that makes sense. Like you said you've said you've been coding for 20+ years and still enjoy it, and I bet you still learn new things too. You can never learn everything there is to know about Tech and software, especially considering it is forever evolving and that is my favorite thing about it. There is so much information just waiting to be absorbed and it's so fulfilling to me.
Thank you for recommending Devopedia. I will definitely be looking into that. I had no idea how many different communities there were for developers. (I guess I should have assumed that since we all live on computers, but never thought about it I guess. LOL) I am so thankful to have found all of you wonderful people!