C
C#4w ago
Aikonekkk

What to learn next?

I did beginner course. I've made projects like calculator, tic tac tac (circle and cross), "gambling" and a lot of smaller projects to remember and remind things i learnt for course. And now what should I learn next? I heard about linq, asp net, entity framework core, idk what is that, so please tell me what should I do
78 Replies
Jimmacle
Jimmacle4w ago
if i were you i'd google those and see what they're for then decide to learn them or not
November
November4w ago
What are your goals?
Aikonekkk
AikonekkkOP4w ago
1. to get good job and be well paid 2. MAKE GAMES IN UNITY
November
November4w ago
1. Research companies local to you. Look at job listings. See what technologies they prefer and learn those. 2. Learn ECS pattern and other common design patterns. Create a Unity project and make a game.
Aikonekkk
AikonekkkOP4w ago
I really like programming, i like learning it, i like coding, so I am able to learn basiclly everythin, if it is impossible, i am able to learn most of c# I always wanted to make games, programs, websites, to be creator of something
leowest
leowest4w ago
do u have those projects on github? did u use all of what is taught in the fundamentals https://learn.microsoft.com/en-us/shows/csharp-fundamentals-for-absolute-beginners/ OOP, classes, methods, etc
November
November4w ago
Well the good news is you have a plethora of stuff yet to learn. If your goal is to get a job, you'll need to specifically see what employers are hiring for. For example, it's almost pointless to learn entity framework core if no company is hiring for it.
leowest
leowest4w ago
its not pointless to learn it not no. given the options we have Today its smart to know efc and something else the company may not be hiring for it specifically(as in actively advertising it) does not mean they dont use it or want to grab some one with knowledge on it
November
November4w ago
almost pointless
Aikonekkk
AikonekkkOP4w ago
i dont use github but in my projects i used basic oop, classes and methods (made by me and form c#)
November
November4w ago
You should definitely learn git and push your code to github or equivalent. That's pretty much required for any development job these days.
leowest
leowest4w ago
well I would suggest u upload it to github that would help people assess your knowledge to give u a better idea of what u could learn or improve or u're lacking and also learn how to use github if u havent its the major life saving in developer's world
Aikonekkk
AikonekkkOP4w ago
alright, and should I do some intermediate/advanced c# course?
leowest
leowest4w ago
I mean I dont know your level of c# but assuming u did learn the basics very well try making a bigger project in console like a text rpg or something harder
Aikonekkk
AikonekkkOP4w ago
project which write and read text in .txt?
November
November4w ago
It would be easier to recommend you next steps if we could review the code you've written so far
leowest
leowest4w ago
hehe no, its a RPG game in console its usually called text rpg but you can actually do it pretty fancy if u try
leowest
leowest4w ago
GitHub
dotnet-console-games/Projects/Role Playing Game at main · dotnet/do...
Game examples implemented as .NET console applications primarily for providing education and inspiration. :) - dotnet/dotnet-console-games
leowest
leowest4w ago
that is just to give u an example and idea since you're into games u can align your learning to it 😉 by making a game in console
Aikonekkk
AikonekkkOP4w ago
okay ill try
Gavyn
Gavyn4w ago
There's hardly a shortage of jobs in ASP.NET I'd recommend taking a course in it. There's a lot to unpack. Here's a good repo to learn from: https://github.com/EdwinVW/pitstop/tree/main
GitHub
GitHub - EdwinVW/pitstop: This repo contains a sample application b...
This repo contains a sample application based on a Garage Management System for Pitstop - a fictitious garage. The primary goal of this sample is to demonstrate several software-architecture concep...
Gavyn
Gavyn4w ago
Here's a good website to learn design patterns for video games btw: https://gameprogrammingpatterns.com/contents.html
Aikonekkk
AikonekkkOP4w ago
https://roadmap.sh/aspnet-core someone sent me this
roadmap.sh
Learn to become a modern ASP.NET core developer
Community driven, articles, resources, guides, interview questions, quizzes for asp.net core development. Learn to become a modern ASP.NET core developer by following the steps, skills, resources and guides listed in this roadmap.
Aikonekkk
AikonekkkOP4w ago
is it good?
Aikonekkk
AikonekkkOP4w ago
roadmap.sh
Game Developer Roadmap
Learn what game development is, what game developers do and how to become one using our community-driven roadmap.
Aikonekkk
AikonekkkOP4w ago
@leowest @November is this roadmap good? asp.net
November
November4w ago
This is good; I have some differing opinions on what is a learning priority and what is marked optional, however.
Aikonekkk
AikonekkkOP4w ago
i do not understand .NET in basics of c# because this point describes only what is .net so it makes me to know what is dot net am I right?
November
November4w ago
Because all of this is scoped to asp.net according to the document
Aikonekkk
AikonekkkOP4w ago
i know that it is scoped to asp net but i dont understand why there is point .NET does it mean something important or it just says what is dot net
actual_weeb_tm
.NET is the platform C# runs on
leowest
leowest4w ago
$terms
MODiX
MODiX4w ago
* C# = the programming language * .NET = a platform/ecosystem for various programming languages, including C#, VB.NET, F#. it includes the BCL, the JIT, the GC, and the CLR (see $dotnetplatform) * BCL = base class library = the core libraries that are used for .NET development (System.DateTime, System.Action, etc.) * JIT = Just-In-Time compiler = translates code from IL to asm at execution time * IL = Intermediate Language = the intermediate bytecode that C#, VB.NET, etc. are compiled to, so that they can be run by the runtime * GC = Garbage Collector = releases any memory previously allocated and no longer being referenced * CLR = Common Language Runtime = includes the JIT, GC, and everything else necessary to run .NET applications * ASP.NET = a framework for .NET that allows developers to write web applications * WPF = a framework for .NET that allows developers to write windows applications * EFC = Entity Framework Core = a object-database mapper for .NET supporting LINQ queries, change tracking, updates, and schema migrations. * STJ = System.Text.Json = the built-in library for working with JSON (see $stj)
leowest
leowest4w ago
this is well structured but for beginners I think its too overwhelming specially without knowing your level, I would say do what we already suggested u earlier and see how well u do at it before considering upping the hurdle. learning web dev with no knowledge on the field has a LOT of things to learn and I mean it. and u can see from that roadmap alone the amount of things that even comes before going into asp.net the one for game dev is even more vague ofc you need to know a math and physics but as a beginner u dont necessarily do because the engines do a lot of that work for u already but as u dive deeper into the field yes u would want to know those and game dev has another layer of complexity because u said you want to be well paid, if u want to get into a triple a studio, u be ready to learn c++ mainly so jumping ahead the cart will get the horses stepping on you
actual_weeb_tm
from personal experience building a web app is certainly a good way to learn a lot, depending on how you go about it. personally my second project was building a basic reading list app, and its an absolute mess but i learned a ton.
leowest
leowest4w ago
It depends on what knowledge you're going into it. asp.net is very overwhelming it self it already throws you into dependency injection, builder, lifecycle, and a bunch of more complex things you can brute force your way into anything if u have enough time for it but if u gradually go for it, u wont be as lost and brute forcing
actual_weeb_tm
it depends on your learning style, Having a system that would do something tangible from the get-go helped me a lot, but thats not going to be the case for everyone.
leowest
leowest4w ago
it really doesn't, not knowing the fundamentals and going into asp.net will literally cost you more time than learning the fundamentals and then moving into it. But then again that is just an example because we literally do not know how much he knows other than he did a a few small projects. not to mention u would be more researching everything then actually doing anything and moving forward and that is what we see the most around good examples are, "I started learning unity, couldn't do anything so now im learning c# first" which is one of the cases we see a lot around here.
November
November4w ago
Dotnet isn't the only platform c# runs on. For example, if you went the unity route you would learn Mono and C#. But for aspnet, your platform is dotnet.
Aikonekkk
AikonekkkOP4w ago
I’ve done all projects (excepy snake) from this chanel (of course I watched only intro to see how the project works and do it by myself)
Aikonekkk
AikonekkkOP4w ago
YouTube
The Coders Cat
Hello, and welcome to The Coders Cat! On this channel, you'll find a variety of Unity and C# tutorials, in the form of mini-tutorials, series and shorts! Feel free to take a browse through the videos. Thank you for visiting this channel!
Aikonekkk
AikonekkkOP4w ago
Should I watch intermediate course? for example form code monkey? and I did notepad thats all @November @leowest should I watch intermediate, advanced course from code monkey?
leowest
leowest4w ago
I think you should do what we already suggested u at the begin.
November
November4w ago
It's still rather difficult to give recommendations on specific next steps when you haven't provided us code to review. We need to see the code you've written.
Aikonekkk
AikonekkkOP4w ago
okay ill send some but comments and strings values are in polish
c#
namespace kosci
{
internal class Program
{
static void Main(string[] args)
{
Random rnd = new Random();

string wybor2= "t";
int wynik = 0;
int wynik2 = 0;

do
{
Console.Clear();
Console.WriteLine("Wpisz r jeżeli chcesz rzucić kością");
string wybor1 = Console.ReadLine();
if(wybor1 == "r")
{
int los = rnd.Next(1, 7);
Console.WriteLine("Wylosowałeś: " + los);
int losai = rnd.Next(1, 7);
Console.WriteLine("Przeciwnik wylosował: " + losai);
if (losai > los)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Przeciwnik wygrał!!!");
wynik2++;
Console.ResetColor();
}
else if (losai < los)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Wygrałeś!!!");
wynik++;
Console.ResetColor();
}
else
{
Console.WriteLine("Remis!!!");
}

Console.WriteLine($"Wynik: {wynik} : {wynik2} ");

Console.WriteLine("Czy chcesz zagrac jeszcze raz? t - tak, n - nie");
wybor2 = Console.ReadLine();
}
}
while (wybor2 == "t" || wybor2 == "tak");
}
}
}
c#
namespace kosci
{
internal class Program
{
static void Main(string[] args)
{
Random rnd = new Random();

string wybor2= "t";
int wynik = 0;
int wynik2 = 0;

do
{
Console.Clear();
Console.WriteLine("Wpisz r jeżeli chcesz rzucić kością");
string wybor1 = Console.ReadLine();
if(wybor1 == "r")
{
int los = rnd.Next(1, 7);
Console.WriteLine("Wylosowałeś: " + los);
int losai = rnd.Next(1, 7);
Console.WriteLine("Przeciwnik wylosował: " + losai);
if (losai > los)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine("Przeciwnik wygrał!!!");
wynik2++;
Console.ResetColor();
}
else if (losai < los)
{
Console.ForegroundColor = ConsoleColor.Green;
Console.WriteLine("Wygrałeś!!!");
wynik++;
Console.ResetColor();
}
else
{
Console.WriteLine("Remis!!!");
}

Console.WriteLine($"Wynik: {wynik} : {wynik2} ");

Console.WriteLine("Czy chcesz zagrac jeszcze raz? t - tak, n - nie");
wybor2 = Console.ReadLine();
}
}
while (wybor2 == "t" || wybor2 == "tak");
}
}
}
leowest
leowest4w ago
send something u actually use oop etc that is way too basic to suggest u going into advanced topics
Aikonekkk
AikonekkkOP4w ago
alright wait i have to find it
leowest
leowest4w ago
preferable use github u will have to learn it(git) either way 😉
November
November4w ago
Even if you don't intend to ever publish your code publicly, using git and a local repository is good practice. If you screw something up, you don't have to worry and you can just reset your changes to when your code once worked.
Aikonekkk
AikonekkkOP4w ago
c#
using System.Text;

namespace ConsoleApp10
{
internal class Program
{
public static void Main(string[] args)
{
Czlowiek czlowiek = new Czlowiek();
StringBuilder stringBuilder = new StringBuilder();

string[] tablicaimion = Czlowiek.imiona();
for(int i = 0; i < tablicaimion.Length; i++)
{
stringBuilder.Append(tablicaimion[i]); // dodaje kazde imie i laczy je

if(i < tablicaimion.Length - 1)
{
stringBuilder.Append(" ");
}
}

Console.WriteLine("Imiona z tablicy: " + stringBuilder.ToString()); // wyswietla wszystkie imiona z tablicy
}
}
}
c#
using System.Text;

namespace ConsoleApp10
{
internal class Program
{
public static void Main(string[] args)
{
Czlowiek czlowiek = new Czlowiek();
StringBuilder stringBuilder = new StringBuilder();

string[] tablicaimion = Czlowiek.imiona();
for(int i = 0; i < tablicaimion.Length; i++)
{
stringBuilder.Append(tablicaimion[i]); // dodaje kazde imie i laczy je

if(i < tablicaimion.Length - 1)
{
stringBuilder.Append(" ");
}
}

Console.WriteLine("Imiona z tablicy: " + stringBuilder.ToString()); // wyswietla wszystkie imiona z tablicy
}
}
}
c#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp10
{
class Czlowiek
{
public string imie = "";

public static string[] imiona() // metoda zwracaja tablice stringow
{
string[] tablica = new string[4]; // tablica w metodzie
tablica[0] = "Marek";
tablica[1] = "Czarek";
tablica[2] = "Jarek";
tablica[3] = "Arek";

return tablica; // zwraca tablice z metody zwracajacej tablice stringow
}
}
}
c#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection.Metadata;
using System.Security.Cryptography.X509Certificates;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp10
{
class Czlowiek
{
public string imie = "";

public static string[] imiona() // metoda zwracaja tablice stringow
{
string[] tablica = new string[4]; // tablica w metodzie
tablica[0] = "Marek";
tablica[1] = "Czarek";
tablica[2] = "Jarek";
tablica[3] = "Arek";

return tablica; // zwraca tablice z metody zwracajacej tablice stringow
}
}
}
it is basic but it is only oop i found I had one more but i cant find it i need to make one folder with c# projects
leowest
leowest4w ago
I will go back to what we suggested u to do earlier these are all too simple it doesnt show much of ur knowledge in oop at all a more complex project would show u how u solve problems, use oop to your advantage, and formulate your classes
November
November4w ago
All this appears to do is join a string array (which you can do with String.Join() by the way).
Aikonekkk
AikonekkkOP4w ago
👍
November
November4w ago
Pick one of the sample projects that we suggested and focus on building that before going into advanced concepts
Aikonekkk
AikonekkkOP4w ago
okay im done im done i think thats it im too dumb for this shit
leowest
leowest4w ago
I mean we are here trying to help you, u dont need to diminish your self... do you think that is too hard? where you're having difficult with it and we go from there
Aikonekkk
AikonekkkOP4w ago
yea i think it is way to hard for me
leowest
leowest4w ago
so we go and pick an easier project let's see have u tried doing a bank or ATM?
Aikonekkk
AikonekkkOP4w ago
I looked at the first project "2048" and at the first look I knew that I can't do it, so I went to look at the code and I said "wtf is this shit" should I just put it in chatgpt so he can describe be it or not i should try by myself to understand it
leowest
leowest4w ago
ok how about one of these https://github.com/karan/Projects#classes
Bank Account Manager - Create a class called Account which will be an abstract class for three other classes called CheckingAccount, SavingsAccount and BusinessAccount. Manage credits and debits from these accounts through an ATM style program.
Aikonekkk
AikonekkkOP4w ago
okay I think I can do it
Aikonekkk
AikonekkkOP4w ago
i think it is okay idk what other functions add if I translated something wrong and it hurts the eyes im sorry english isnt my first language
November
November4w ago
This journey is a marathon, not something that you just learn in a week. If you can comprehend basic boolean algebra, you can learn to code You have this base class called Account that is meant to be the blueprint for all of your subclasses. And you have a few subclasses, but it looks like the logic is all pretty much the same, no? So what is the purpose? Why not: Account businessAccount = new Account() Account checkingAccount = new Account()? If you anticipate the logic to differ, then you can have this abstract/subclass relationship. But you would need Deposit to be abstract and be on the abstract class. Refer to these concepts: Abstract classes Interfaces Polymorphism
Aikonekkk
AikonekkkOP4w ago
No description
Aikonekkk
AikonekkkOP4w ago
that's why i know that it can be solved somehow but on my level i have no idei how to do it so i tried to set it like this
Aikonekkk
AikonekkkOP4w ago
No description
Aikonekkk
AikonekkkOP4w ago
and it worked so i left it so i should add deposit method to abstract account? what is the polymorphism? and I know interfaces but I don't find it useful to add
November
November4w ago
This wouldn't work because Account is abstract and because Account is a less specific type than the declared type. You can do: Account checkingAccount = new CheckingAccount(); This is an example of polymorphism. This depends. I didn't read the project requirements. But if the logic for a CheckingAccount and a SavingAccount are exactly the same, then there's no need to use an abstract method. Abstract methods are useful when you want all your subclasses to do a certain function, but the details and behavior differs depending on the subclass.
leowest
leowest4w ago
@November already covered some of the stuff I would say abstract is like a blueprint here u would have add things that would be in common between all the 3 classes like methods withdraw, deposit, properties etc I would have expected u to not use static for the classes at all the use of static shows me that ur still unsure how to instantiate and use classes but sadly the project description was pretty vague and unless u know how to use what was told in it I wouldn't expect u to do that on top of that, I would have expected a class called perhaps Person or Client who could own accounts and perform operations a List of clients a class for Bank but then again it wasn't list on the description so u just did what was written you do seem to know the basics of the basics I would say keep polishing it some more in console apps try doing some more $projects from these sites and see where ur falling short before u move on to asp.net
MODiX
MODiX4w ago
Collections of application ideas that anyone can solve in any programming language to improve coding skills: https://github.com/dotnet/dotnet-console-games https://github.com/karan/Projects https://github.com/florinpop17/app-ideas
leowest
leowest4w ago
you dont need to watch these videos but you can use the titles of each chapter as guidance on what to learn/review althou u already know some of the topics https://learn.microsoft.com/en-us/shows/csharp-fundamentals-for-absolute-beginners/ and polish for now on top of that as u go in start learning about the basics of $di
MODiX
MODiX4w ago
Dependency injection is really just a pretentious way to say 'taking an argument' See: http://blog.ploeh.dk/2017/01/27/dependency-injection-is-passing-an-argument/
Dependency injection is passing an argument
Is dependency injection really just passing an argument? A brief review.
leowest
leowest4w ago
the next step from this really is practicing a lot and getting more comfortable with using all of that in projects and then start learning some concepts and patterns as u move into more specific stacks
Aikonekkk
AikonekkkOP3w ago
I am following this path and I am at the stage of asynchronous programming and I have been trying to understand and learn it for 2 days, but I am not able to find any video on youtube that explains it well, could you explain asynchronous programming to me? When and why is it used, how to use it I understand that it is used to do few methods at the same time and why is it used working with apis?
Aikonekkk
AikonekkkOP3w ago
GitHub
GitHub - gridlocdev/csharp-learning-roadmap: A beginner's roadmap o...
A beginner's roadmap of concepts to learn the C# programming language - gridlocdev/csharp-learning-roadmap
November
November3w ago
Asynchronous programming is a core feature of programming in general. Let's say we want to call some web-based service to fetch some data, for example, weather data via some public weather api. We might do something like: var weatherData = GetWeatherData() But the problem here is that GetWeatherData() takes some unknown time to execute. It doesn't instantly provide us with information of the weather. So we want our code to pause here and allow our program to go do other stuff and only once we get a result back to resume execution. So instead of returning some weather data, our code returns a Task of weather data. Task in C# represents some work to be done. And we can call and await this work to be done using certain keywords. async this keyword is used to mark functions and tell the compiler that this function can perform work asynchronously. This should pretty much always be used with a return type of Task or Task<T>. E.g., public async Task<GetWeatherDto> GetWeatherData() await is the keyword that "waits" for the Task to finish before moving on. E.g., var weatherData = await GetWeatherData() this wait for a response before storing the result in weatherData.

Did you find this page helpful?