How did you become confident in your programming abilities?
I started trying to learn to program, and I want to ask professional programmers how you became confident in your skills. Did it take you a long time? When did you know you were really awesome at programming? engineering programming confidence
I think these two simple approaches provide a practical way to improve ones coding abilities and gain confidence.
Pick a project (a simple game like mine sweep, a web application or site, a tool that will bulk rename files and zip then up, whatever) and finish it. The finishing part is really critical to actually improving and gaining confidence. Its very easy to start writing code that never amounts to a functional application. While writing code in general is useful you will learn the most by picking a project and seeing it through because you will think through an entire piece of software's architecture and revisit old code/assumptions to ultimately finish the project.
Share your code, get it reviewed and critiqued by others. Similarly review and critique code written by others. At work one of the most frequent, and in my opinion best, learning opportunities for developers is to receive code reviews (beyond that its a requirement of the job if you want to be successful). Doing code reviews lets you both learn and teach, seeing how others accomplished some task and giving suggestions for alternative implementations. One big word of caution, if you are in school and plan to do code reviews for a class assignment make sure that your teacher/professor knows you (and your partners) are doing this. There can be a fine line between collaboration like code review and "copying" in academia so best to get permission first.
One thing that I learned in my years of being in the Software Engineering/Computer Science profession is that it is one of those fields where the more you know the less you know.
I remember several instances where I have felt confident in my programming abilities only to learn a bit more and figure out that I actually don't know that much at all. It is a constantly evolving field so there is always more to learn and that makes it pretty impossible to ever be completely confident in your abilities.
Give that you should never feel like you can't do something, the lack of confidence in your programming abilities is what every software engineer feel when they start on a new project. And if you like this field then all that lack of confidence is going to signal in you is the excitement of getting to solve new problems and learn something new at the same time. Think of that feeling as a positive thing like getting to unlock a bit more of your abilities every day you're in this profession.
I believe in any field that in order for you to be confident, you should be able to teach it to others.
Like any teacher or professors, they are confident when they understand what they are talking about.
It took me a while to understand what Object-Oriented Programming meant or was. After years of learning about it, it didn't become obvious when I taught others about it. I used analogies, pictures, and drawings to teach to my non-tech-savvy friends of what OOP is all about. I encourage you to do the same.
Now, just to be clear, I am not the best software engineer in the world. If you ever feel this way, you need to ask yourself, what areas of computer science or software engineering are you PASSIONATE about. What would you LOVE to teach? In this case, I found out that I love software internationalization, software localization, software globalization, and test-driven development. Not many people are passionate about it and it gave me confidence that I can teach others on what I enjoy.
Find your niche, teach it to others, understand it completely, and then you're fully confident!
I'll advise on a more practical approach. I got more confident in my programming skill by creating applications on my own. I would find a need and create an application that fulfilled it. After a while I started realizing that I was able to solve problems by creating these applications. This gave me confidence.
I wasn't really confident in my abilities until I started getting programming jobs and people paid me to do it :)
It's really difficult! The main thing here is that you shouldn't assume that you're not good just because you're not confident. Asking other people to look at your work and tell you what they think really helps.
I think there are two different kind of ways to become confident at programming:
1) Application programming - Where you are comfortable with developing websites, and mobile apps. This skill is not easy to practice because you have to create a whole different project every time. However, web and mobile programming is very easy to pick up once you get going.
2) Algorithmic programming - Where you are comfortable in participating in coding competitions such as TopCoder and Hackerrank. You can get lots of these opportunities online but it is not easy to pick up at all.
Best of luck!
I think it's like a lot of activities: learn and practice, practice and learn. Open source projects provide an excellent proving ground, both because you needn't start from scratch (small changes/fixes/improvements are a great way to get started) and because you can frequently tie them to your own personal interests or needs.
For example, one of my earliest projects was contributing to unzip, an open-source implementation of the decompression half of PKZIP. I needed it in order to transfer files for my graduate studies, but it didn't quite compile correctly on some of the systems I used. So my first changes were just little things to get it to build. Later I added some little features, then rewrote part of it for better performance, and ultimately I became the lead author for a few years.
I was also fascinated by graphics, and when a friend wrote a 3D mapping program with full coastline data for the Earth--but in BASIC, so it was really slow--I decided to port it to a compiled language, which sped it up by about 50x, as I recall. Fractals also seemed cool (and simple), so I wrote my own fractal generator. And so on: I just followed my passion, writing or contributing to whatever program seemed most interesting or most immediately useful at the time, eventually working on two or three dozen, I think.
That's what worked for me. :-)
This is an interesting and difficult question to answer.
You must first accept that there may not be an "end" to your journey to being a programmer. Programming, like any skill, will have different stages; off the top of my head I would mark those stages as follows:
When you begin your journey into programming, you will first expend a lot of time and energy just getting your bearings. Getting an editor working, learning the syntax, idioms of a language, doing silly little programs less that a few dozens lines. When you start getting used to coding, you begin creating mental patterns of problem solving, exhibiting traits necessary to make sure you are coding in an expressive and intent-describing manner. You will end up reusing code you created in the past for future projects. You will learn about interface design, functions, data persistence, etc. When you become advanced, you will find yourself more focused on solving the particular problem you are addressing, versus wondering if you are "good" or "bad" at a language. You will probably have an almost "muscle memory" for what you will need to do to address a problem. When you become "expert" level, things will be at an almost intuitive nature....and that may be a problem.
You need a "beginner's mind" but have a child-like openness in analyzing issues maybe shift your approach rapidly. But, to your question, when can you be "confident?" You have to solve problems continuously and be an active learner in that regard. Consider, once you are comfortable with a language, exposing your code to the world. Use a code-sharing site like github to post your solution and ask for feedback. Hop onto sites like stackoverflow and ask for advice. What I am getting at is that you may want to not be confident in your coding abilities to a supreme extent. By having a small amount of doubt, you can be something I find more useful. Try to continually improve your skills, versus trying to find a plateau of accomplishment.
I would say that you have to code code and code some more. Then, have other people review your code. To become confident means that you need to collaborate and have others provide feedback. Listen and discuss alternative solutions. The best way to do this is to join a project on Github or some other open source avenues.
Never try to code in a vacuum. Write it. Share it and get the feedback. You'll be better for it.
I don't think learning to code took a long time. Someone once explained it to me that coding is like learning a new language. You're learning how to speak in a different way. Once you simply it into that you'll be a coding pro! Also, once you learn 1 language you can pick up the rest really easily! In this internship I had to learn about golang, something I wasn't familiar with at all! But now I think I really have the hang of it and have learned a few new cool tricks!
I don't when I'll ever be really awesome at programming. I know I enjoy solving all the different types of issues that come up and that's where my engineering cap really has to come on.
Actually, I don't think you ever want to be too confident in your own programming abilities. I've heard that if you look at something you wrote wrote a few months ago and you can't find anything to improve, the thing that needs to improve is you. You should be constantly reevaluating your programming habits, learning about better ways to do things, and honing your skills. Be in constant competition with your previous self and you will become great at what you do.
It's all practice, practice, and practice. The more you do it, the better you will get at it.
That being said, there are "right" ways to practice, and other, not so correct, ways. As programmers, part of our job description is to learn and be passionate about what we do. Just like any skill, we have to constantly push ourselves to outside what we feel as comfortable. Becoming confident at programming does not entail writing "Hello World" applications for 10,000 hours, for instance.
There are a lot of resources that will help you get going and start challenging yourself, but when I'm looking to become really good at something, I typically go look at the super stars. Once you've picked up the basics, find out who's prominent in the community (for good reasons) and read what they've wrote (especially books!). Then reflect, see what you could've done better, and keep these thoughts in the back of your head the next time you're starting something.
The feeling of confidence will come after you've overcome enough challenges. This will vary depending on what you're trying to do, and what you feel is appropriately defined as "confident." At the start of my career, I thought I was confident in C++ after a few tutorials and toy projects. Probably would've rated myself a 8/10. Then I start reading through Effective C++, Exceptional C++, etc, and I've since admitted I barely knew anything at all about the language.
Taking up engineering in my undergrad really helped me. It helped me to get my theory rock solid. I would advise on taking up a good programming class online. There are loads of classes offered on coursera, udacity, codeacademy. However, just learning about a programming language will not help. I recommend thinking of some real life problem that you would to solve. Once you have figured out what you want to work on and learned some basic language specifics, you can start working on the project. Commit your code on github and get feedback on that. Once you get the project working, you will be really confident of your programming skills since you actually solved a real life problem.
Getting feedback on the code is really important. Since writing code is not difficult, however writing good code it.
HI If you want to create a program, then first start with the basics. If Basics is clear then you can jump to other languages.
First go with the "C and C++ " from yeshwant kanetkar books . It will help you to build your programming skills.
Once you are have learned basics (it will take atleast 6 months for you to get used to it ). Now you can start creating programming in Visual Studio 2016 version easily and fast .
third then you can start jumping on other languages. Like JAVA , Oracle , HADOOP , C#sharp,PHP etc etc
[ Learing proramming is easy , putting logic into a programming is a god gift , if you are person who have logical mind then this is the way that you can approach]
You can purchase the books from Amazon and easily availble.In case if you need any more information , then reply back
I started programming in college and I was probably already 2-3 years behind some students in terms of coding experience so that a blow to my confidence. The hardest part about coding is starting a new language since you feel so lost for the first few months. After maybe 6 months, I started to gain a lot of confidence in my own coding and debugging abilities. Even now that I've joined the industry for 1.5 years, I feel like there are so many better coders with more experience. However, just keep on learning and you'll gradually gain confidence in your own programming abilities.
Participating in online competitions such as top-coder is a great way to hone your programming skills. It serves two purposes:
- It lets you benchmark your self against your peers
- Top coder is very good at creating competitions around what is hot in the industry so by participating in them you will ensure that you are focusing on the right technologies/algorithms
This is a great question. I would say that you can become confident in your coding abilities when you can say that you can create programs that do the following:
1) Perform well
2) Do not create user complaints
3) Can be expanded without a lot of refactoring
You could add many more items to this list. But, I think the first 3 are a good start. So how do you know? Do you ask your boss? Maybe. What about user surveys? A possibility.
At most companies, there are many metrics used to help analyze software used by the public:
1) Code reviews - another programmer will look at your code and either agree with you or suggest improvements. This can be subjective (meaning an opinion).
2) Code quality tools - SonarQube, code linters such as JSHint, JSLint, and IDE (IntelliJ, Visual Studio, etc.) analysis. This is more objective. For example, is your code too nested? Do you have dead code blocks? Is your code to complex? These tools can help you with best practices AND help you learn!
3) Performance tools - If you have a website, you will have tools that tell you how it is working. It is too slow? Are people getting errors?
So, as you can see there are many ways to build your confidence. But, even if you get an A+ on all of the above, there still might be a better way. The more you work and get feedback, then more your confidence will build! Always have an open mind and ask questions! Good Luck!!
Mostly by writing code :) You can read a book here and there, but you will forget it all unless you use it. When you try to run code, initially you will make a lot of mistakes. You will learn a lot just by trying to get it to work. Over time you make lesser and lesser mistakes and coding becomes like second nature.