Fogwe Good question. Speaking for myself, in the early days of my career, I never felt ready enough to jump into the job market. I just did it. No matter what, you will never be ready enough. You just need to be able to learn as rapidly as possible and keep up. Prepare to fall, mess up, make mistakes, ask good questions, figure stuff out, and learn faster than ever as you go. It's actually much more exhilarating than it is intense. I loved those early years.
With all that said, I'd be happy to evaluate if you are ready enough to put yourself out there.
Let's start with a few basic questions.
1. How long have you been programming?
2. How did you learn?
3. What's the most involved code or application you've built so far.
4. How fluid is your typing as you're coding?
5. How much experience do you have working with a database within your code?
That should be good enough for now. I'll wait for your reply for follow up questions.
When one knows, or at least can think of the steps needed to begin with in solving the problem (given the details and other necessary stuffs) - by then one knows that s/he had enough experience and be confident to handle the case.
People say practice & experience builds one's confidence, but even an experienced coder *may* still find a moment when they needed some time before s/he can think of an idea to solve or begin try solving the problem, just saying : )
P.S. I think your question isn't strictly related to C# as a language, it concerns more of one's career. If possible, try to put more relevant words in Relevant Tags section to increase focus on the question topic ✌
Rumy I'm not necessarily disagreeing.
However, one challenge to consider is how would Fogwe, or anyone new for that matter, know if it was good or not?
While they may be genuinely impressed, maybe even blown away, in reality, it will likely either be very rudimentary at best or horrifically plagued with the worst practices. 🤷♂️
Sonic Depending on your job market, I would argue that an understanding of the basic CRUD operations between an application and some persistence storage is essential for job readiness.
I imagine this could be substituted with a strong understanding of RESTful APIs for frontend developers in some job markets.
The more knowledgeable a candidate is with concepts spanning either relational or document databases, the more qualified they would be over other candidates.
Any one can code and get output but the professional knows the coding ethics such as how to give perfect name to variable, how to optimize code, when to use comment etc. This is very important because if many people are working on a project it will become very easy for other programmer to understand code.
Fogwe Are those 5 apps available for review in Github or somewhere?
Did you build these from scratch or guided via books?
Did you work with any frontend libraries / frameworks like ReactJS or Angular, WebPack, etc?
Regardless of your answers, I'm quite impressed. I could review your code to give you objective feedback if you'd like.
Also, how familiar are you with each concept highlighted in this article?
David Carroll thanks!
I studied physics and we used FORTRAN and PASCAL back then in college for modeling and simulation. I've been exposed to programming since 2009, but not the kind of programming for app development
I got into app development (c#, Java...) in March. And that's the length of time I have been trying to code on OOP language.
I believe I've been able to fill myself in -do CRUD, apply REST, DS and Algos amongst others. I've been able to build 5 simple apps all based on CRUD, in C#-Banking, school, Stock Exchange, Finance and 1MVC based feedback app. All run well as intended.
So on databases I am cool, I have been working with them. My scare is how new my exposure is to languages like c# and Java; gaining grounds on 99% of the syntaxes.
It's just like any other job. You start at the bottom and work your way up.
You don't start as a chef, master carpenter, chief engineer or a senior programmer. You start as a drone at the bottom being given simple tasks with fairly detailed instructions. You follow those instructions and learn. If you have good managers, supervisors and mentors they will help you to develop your career.
I find it odd that in many professions we used to have apprenticeships yet not in software engineering. You do your college courses, maybe get an internship and then get thrown out into the job market on your own.
I suppose it's a sign of the times. There's a shortage of skilled software engineers, technicians etc. but nobody wants to make the investment of training anyone so you're on your own.
It is always a tricky question. Am I ready? The truth is, you may never know until you try. You have to get hands-on with programming. You can practice for a lifetime and never be ready because you won't have a goal. At least with a project in mind, you have something to actually work towards.
You are usually asked a bunch of questions to determine your job readiness, so if you don't know these questions, use what you don't fully understand as a guide for your learning path, then when you can fully answer the questions you missed, then you are ready. Once you get the Job.
Prepare to fall, mess up, make mistakes, ask good questions, figure stuff out. Like David Caroll said. Until you complete your project. I don't know many programmers who get their program right the first time around. If they did we wouldn't have alpha, beta, retail, and updates...