Register

Already have an account? Login

TopTopQuality 2,753 pts

C# or Ruby?

Posted by TopTopQuality over 8 years ago · 19 replies

Hi, I know it's not Arsenal related, so if it violates your rules, just delete.

I want to build a website, so I'm learning HTML and CSS at the moment, I'm a noob. But at some point I'll have to learn either C# or Ruby, plus Java, databases and I think some other stuff.

And I can;t find a definitive answer which one's better for my needs - C# or Ruby.

The website I want to create will be for professionals, who can create profiles there, provide a description of their skills, experience and qualifications and then customers will be able to contact them.

What do you think? Or could you point me to where I can find some relevant info? There's so much stuff written on this subject, and I'm a bit lost in it.

19 Comments

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

I think I'm more of an analytical/math type. The websites I want to build are relatively simple, I'd strive for simplicity and clean look in terms of design. I like the layout of this site for example.

Thank you for your advice.

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

Oh I definitely will learn bootstrap. Straight after HTML & CSS. I've already downloaded about a dozen books about coding. Just can't decide between C# and Ruby as l know nothing about them

Ix Techau Evil Mastermind 14,278 pts
Posted over 8 years ago by Ix Techau

C# is mainly for programming native software, not building websites. So the next step should definitely not be C#, unless you want to become more of a computer engineer instead of a web/app developer. For websites and web apps, Ruby on Rails is one of the trendier languages along with Angular/Node, with PHP and all of its many frameworks (Wordpress, etc) being the old war horse that still works absolutely fine. Many corporate sites also use .NET as it usually fits well with their internal Microsoft ecosystem.

When you pick a language, the most important thing is not choosing the "coolest" language, but choosing the language that makes the most sense to you. There is no language that is better than the other, the only difference is how it's done - they can all do the same things.

I personally went for Ruby on Rails as it's a bit different in its approach. Arsenal Report is written in Rails, and so is MiniManager. It's a bit more human-friendly to read and comprehend, in my opinion. The creator of Ruby (the underlying engine) had the philosophy that a programming language needs to be human-first, and the creators of Rails (the framework on top) are very successful and clever guys that improved this human-first approach even further.

But again, this site could have been written in PHP, Angular/Node, .NET...and it would still work the same.

With all that being said, the world is slowly moving towards javascript frameworks being the standard in the future. So if you want to become future-proof, I definitely recommend learning in this order:

  1. HTML/CSS
  2. Basics of javascript
  3. Angular
  4. Node

If you learn those four you can build any website on the planet.

Or if you, like me, find javascript a bit unfriendly and confusing, I'd recommend:

  1. HTML/CSS
  2. Basics of javascript (you always need this step)
  3. Ruby on Rails

Good luck!

Ix Techau Evil Mastermind 14,278 pts
Posted over 8 years ago by Ix Techau

Learn bootstrap it is rather good

Bootstrap is only for theming. It's normally used for people who don't want to, or are unable to, write their own CSS and just need a working website without the design hassle. It's a great tool for developers who want to quickly have a user interface without spending two days styling it, but it shouldn't be looked at until you're comfortable with HTML/CSS and some basic javascript.

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

Thanks Ix for you very informative post. I got this idea that I have to learn either Ruby or C# from this post http://www.nicoschuele.com/posts/teach-yourself-web-development-from-scratch-with-ruby-python-or-c

And I didn't realise that C# and .NET are two separate things, I thought they were somehow integrated.

So, once I've mastered HTML and CSS, got a hang of Bootstrap, I'll look into JavaScript and Ruby on Rails.

I guess what I want to build is relatively simple, it's not a game, for example. It's just a website where people can register, display their profiles and send each other messages.

How long do you think it'll take me to learn the needed skills and to actually build that website? I'm a fairly quick learner and I spend a couple of hours per day reading stuff. I'm now reading Head First HTML and CSS, will probably finish it next week.

Ix Techau Evil Mastermind 14,278 pts
Posted over 8 years ago by Ix Techau

I got this idea that I have to learn either Ruby or C# from this post http://www.nicoschuele.com/posts/teach-yourself-web-development-from-scratch-with-ruby-python-or-c

That post makes no sense at all to me, I'd recommend finding something else.

And I didn't realise that C# and .NET are two separate things, I thought they were somehow integrated.

Well kind of... .NET can be written in a few different languages, including C#. It is then compiled into what Microsoft calls CIL, which means that you can code in whatever .NET compatible language you want and .NET will spit it out in a unified language.

Again, .NET isn't recommended unless you want to become a developer focusing on corporate infrastructure and internal native software.

So, once I've mastered HTML and CSS, got a hang of Bootstrap, I'll look into JavaScript and Ruby on Rails.

Skip Bootstrap, it's just a lazy theme that you should only use once you've learned how to actually create websites. Focus your efforts on HTML/CSS, then javascript, then Rails or whatever programming language you're interested in. Bootstrap is fluff.

I guess what I want to build is relatively simple, it's not a game, for example. It's just a website where people can register, display their profiles and send each other messages. How long do you think it'll take me to learn the needed skills and to actually build that website

Impossible to say, all depends on:

  1. How interested you actually are in becoming a developer (you'll find out quickly enough)
  2. How much enjoy the languages used, and how much they make sense to you (lots of math!)
  3. How much you keep coding over and over and over and over and over again

The best way to learn is not to read books, but to actually do. Find some tutorials that teaches you how to build a super simple website in a few steps. Then build ten of those in different varieties. Then find a slightly more advanced tutorial, follow that, and then make ten more websites based on what you learned so far.

Repetition is the best form of learning. THEN read books. I find this approach much easier, because you actually know what the book is talking about if you've already had some hands-on.

I'm a fairly quick learner and I spend a couple of hours per day reading stuff. I'm now reading Head First HTML and CSS, will probably finish it next week.

Finishing the book and actually learning it are two very different things. Coding is not about knowing the language, but knowing what to say in that language. For example, you could know every single word in French, but unless you know how to put them together to form a sentence, you will make no sense trying to talk to a French person.

If I were you, I would start by learning the concept of programming, not the languages. How all the pieces fit together, the difference between backend and frontend, the basics of how a website talks to a database, the basics of hosting, etc. Understanding the concepts was the biggest hurdle for me to get going.

Ix Techau Evil Mastermind 14,278 pts
Posted over 8 years ago by Ix Techau

I guess what I want to build is relatively simple, it's not a game, for example.

Oh by the way, one realisation as you learn code is that most, if not all, websites are exactly the same under the hood. You create an object (blog post, poll, player, etc), that object has attributes (title, content, first_name, etc), and some objects are related to each other (comment belongs to user, etc).

Once you realise it's all the same, you're free of the restrictions of thinking a blog is super different from an eCommerce platform (it's not), and extra super different from a game like MiniManager (it's not).

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

Thanks a lot Ix.

I've tried one tutorial https://www.codecademy.com/learn

But I found that there's very little background explanation and I like being thorough in my approach to learning. In that tutorial it was just instructions, and I kept having those "what if" questions. So, I decided to read books and combine them with practical exercises. The book I'm reading at the moment about HTML nd CSS has exercises, which put everything to practice.

Thanks again for taking the time to write those informative posts, they've definitely helped.

Ix Techau Evil Mastermind 14,278 pts
Posted over 8 years ago by Ix Techau

Thanks again for taking the time to write those informative posts, they've definitely helped.

No problem. One final thing to think about: decide your speciality before you start learning. People who are so-called 'full-stack developers' (both backend and frontend devs) and designers are very rare, because the two are polar opposite brain halves. In our industry we call them unicorns, because designers who can code are extremely rare and very valuable.

Programmers work with logic and math, designers work with creativity and taste. Mastering both is unrealistic. So decide early on what you want to be, based on your skills. Are you a creative type that has a million ideas and keep up to date on latest design trends? Focus all your efforts on HTML/CSS and a bit of javascript so you can design websites properly. Are you a mathy type that find logic and machine-speak comes easily? Focus all your efforts on learning a programming language with a bit of HTML/CSS sprinkled on top.

I've seen too many people trying to be everything at once, and all that happens is that they end up being mediocre at all things, master at none. Don't try to be a unicorn, grow into one if your future skill set allows for it. But for now, focus on one thing and become master at it.

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

I think I'm more of an analytical/math type. The websites I want to build are relatively simple, I'd strive for simplicity and clean look in terms of design. I like the layout of this site for example.

Thank you for your advice.

Alex 1,403 pts
Posted over 8 years ago by Alex

I think I'm more of an analytical/math type. The websites I want to build are relatively simple, I'd strive for simplicity and clean look in terms of design. I like the layout of this site for example.Thank you for your advice.

In that case focus on the back end. I'd also agree that Rails is the way to go. Much easier for a beginner than trying to build Node.js apps.

For the front end there's plenty of free templates out there that will do the job.

TopTopQuality 2,753 pts
Posted over 8 years ago by TopTopQuality

In that case focus on the back end. I'd also agree that Rails is the way to go. Much easier for a beginner than trying to build Node.js apps.For the front end there's plenty of free templates out there that will do the job.

Thanks, that's what I intend to do now

You are not logged in!

Join Arsenal Report today to improve your experience using the site with thread subscriptions + custom profile with cover image and favourite XI + the ability to post comments, polls and AMA questions.