You should have a significantly complicated project that you created to talk about. Bonus points if you can show it off - either the code or the final result. It's okay if this is a school project. If it's a group project, be prepared to talk about your role within the group. Be prepared to talk about the decisions you made and why. Be prepared to talk about what troubles or issues you encountered.
Be ready to draw your project with lines and boxes. There should be at least three boxes. Here's some example drawings of what you might make:
If you don't have a project, make one. Besides preparing you for an interview, this will help you hone your craft. If you don't know what to make and you need an idea, make a Todo web app. Here's your requirements: it needs to let the user create lists, add items to a list, remove items from a list, and then mark items completed. Feel free to take it as far as you want:
- Use a responsive design
- Allow editing of items
- Have it auto update when a change is made in another window
- Create logins and user accounts
- Build a native mobile app version so a user can use it on their phone
- Make it work offline
- Have predictive suggestions
Software development is a big field. You will probably get asked what you want to do. Employers want some idea that the work they have will interest you and that you'll stick around for a while. If you're not interested in the work, then after you've had some experience, you're going to leave and go find a different job. So have some idea of what you want to do, in terms of technology. Concentrations here may include: Web, AI, front-end development, big data, mobile apps, game development, back-end development, algorithms, etc. NB: you don't have to just pick one area and most likely your interests will change over time. That's OK.
Also, it's beneficial to have some idea of what you want to do as a mission. Sometimes work can be technically dull, but rewarding because it's a mission. If you have a mission, then this is a good addition when you get the "what do you want to do" question. You may want to solve people's everyday problems and make their lives easier. You may want to help create a moonshot product. This may not yet be clear, so don't worry if you don't know exactly what to do.
You should have used a few different programming languages. Strive for at least four. Be ready to talk about why you liked one over another, or what you learned from using one over another. Put them on your resume. If you don't have enough, make your TODO project in a new language - time to learn Python to use Django or C# to use ASP MVC or Object C for that iOS app or Java for Android or Ruby on Rails, or PHP. It doesn't matter, just learn a few different languages.
You should understand basic OO concepts. What's an object vs class vs interface? Know what inheritance is.
Even if you've never used it (and you should). Know what version control is. Put your sample project in Github. Put your Github URL on your resume & web site.
As a bonus, be familiar with at least one cloud hosting provider - AWS, Google Cloud, Azure, it doesn't matter. Almost all dev jobs have some component of dev ops. Knowing how to use these will most likely be part of your responsibility.