I've made a few basic programs, your usual input/output "ask user this and return that". Then did a fairly complex project where I had to use multiple nested for-loops to invert colors, flip, and create mosaic effect to an inserted image. Also did data analysis on CSV file and extrapolated creative and useful statistics. I understand what objects, classes, variables, looping, if-else, staticVsInstance, imports, collections, arrays,
polymorphism, recursion, inheritance, encapsulation and many other CORE
java aspect. But after taking my first semester in computer science using Java, I still feel like I don't know how to create real programs, like the ones I see online or in app stores. Another thing which bothers me is this thought that, if someone were to ask me to create a demo app of facebook/snapchat/angry birds or the like, I wouldn't even know where to start. How long does it take to get to that level of programming to where you can just create the app you see in your mind. What am I missing here? I feel like I've learned/covered a lot in my last semester. It feels like I have a limited tool kit to access making it hard to make anything significant.
Thank you