Then I started to write a 4000 lines of program for a personal project because I didn't know a shit about hashmap/function/class/importing/library. Using an extremely limited subset of the language still deliver the stuff. Cos I only know looping in that time, I can comprehend 6 layers of heterogeneous for loops, each layer doing different thing.
I can lay out the structure of code (100lines) in my head then write them out.
I can translate everything I want to do in code.
But then I meet other people in university labs, I find that people actually struggle in coding, even in top tier university's CS department.
How do you guys code?
My most productive devs were fine coders. Their important skills were:
- writing code that other people can read and maintain
- working collaboratively
- staying open-minded about alternate ways to do things
- making good trade-offs between "get it done fast" and "get it done properly"
- communication (understanding specs, asking for help, giving help, explaining problems)
Most dev time isn't writing code, and 0% of dev time is implementing data structures or basic algorithms.
Learning a new stack quickly is important. Writing code quickly isn't.
This is a special talent since not all programmers can do the same. But when working in teams this will be a problem. You might be able to leave people in the dust but no single programmer can accomplish what a team can. Teams must be able to work together towards a goal but if they can't follow your train of thought then it will make working with you very hard. Also, you will have a hard time working with other programmers that can't keep up with you.
My advice to you is to find a very challenging project that will help solve a human problem. You can then create the skeleton of it and have other programmers fill-in the details with your help. You would be a very good candidate for a PhD. program but only if you can choose a project that's both challenging for you and solves a real problem under the guidance of a mentor.
It seems that you are still early in your studies so things might change as you progress and your way of thinking changes as the classes get more challenging. But keep the above in mind, it will help determine where you best fit.
With programming, probably less so. You will need interpersonal skills to be successful in a career. It's a good time to check the ego and develop the non-technical skills.
Another point, having taught first year programming, students learn at very different rates. Some excelled early with the easy stuff but had trouble making the transition to more complicated. Others struggled and then one day it just clicked for them. One in particular was struggling the whole way through, but came to office hours every day. By the end they were a top student. Effort to develop the skill of coding can pay off.
I don't think you care. I think you just made this because you want to be told you're special.